如何在主页的弹出窗口中从向导中的用户控制中获取ControlToValidate ID-javascript asp.n

How to get ControlToValidate ID from User Control in a wizard in a popup in a master page - javascript asp.net validation

本文关键字:获取 控制 用户 ControlToValidate ID-javascript asp 向导 主页 窗口      更新时间:2023-09-26

我想让我的自定义javascript验证器客户端函数通用,但我在获取用户控件的函数中的ControlToValidate ID时遇到了问题。

用户控件位于模式弹出窗口中的asp:wizard控件中,该弹出窗口位于页面中,整个she-bang使用母版页。我不知道这些信息是否重要。

下面的js代码用于验证用户控件,该控件基本上是一个下拉列表。获取单个特定控件的ID根本不是通用的。

function checkCombo(sender, args) {
    var cb = document.getElementById('<%= cmbList.ClientID %>_cmbList');
    args.IsValid = (cb.options[cb.selectedIndex].text != '-- Select --');
}

应该起作用的,不起作用(sender.ControlToValidate)。我需要能够在大约20个不同的下拉列表用户控件上使用一个函数。

var cb = document.getElementById(sender.controltovalidate);

如何以通用方式获取此控件ID,以便我的自定义javascript验证函数能够处理所有这些用户控件下拉列表?

谢谢!

--Bob

您可以在不知道控件本身的情况下从args获取控件值:

function checkCombo(sender, args) {
    args.IsValid = (args.Value != -1);
}

如果您将选项"--Select--"的值设置为-1,这将起作用。无论如何,我认为你可以通过像这里这样的RangeValidator来实现这一点https://stackoverflow.com/a/5116098/1495902