0

我有自定义验证器代码

<asp:CustomValidator ID="ddl1" ClientValidationFunction="IscontrolVisible" ControlToValidate="ddl1"
                            runat="server" ValidationGroup="ValSummary" Display="Dynamic" ErrorMessage="drop down invisible">*</asp:CustomValidator>

下面是功能

 function IscontrolVisible(source, arguments) {
        //if ((document.getElementById(source).visibility == "visible")) {
        debugger;
        if (arguments.value == "" || arguments.value == "Select...") {
            arguments.IsValid = false;
        }
        else {
            arguments.IsValid = true;
        }
    }

如何根据控件的可见性获取错误消息?

4

1 回答 1

0

使用该source.controltovalidate属性来获取正在验证的控件的 ID,因此document.getElementById(source.controltovalidate)请在您的代码中使用。

但是,如果您直接设置控件本身的可见,您将只能检测您正在验证的控件是否可见。

在这种情况下,您可以执行以下操作之一...

if (document.getElementById(source.controltovalidate).style.visibility !== "false") {
if (document.getElementById(source.controltovalidate).style.display !== "none") {

如果控件由于其中一个父控件而不可见,则它不会继承visibilityor的 CSS 样式display。在这种情况下,您必须递归检查相关控件的所有祖先。

额外的

如果您想更改 ErrorMessage 文本(请注意,这只会在浏览器上本地更改,并且不会在回发后复制回服务器上),那么以下内容应该适用于验证摘要消息框弹出和列表/项目符号...

source.errormessage = "New Error Message";

当显示为验证器本身的一部分时,以下内容应该适用于消息......

source.innerHTML = "New Error Message";
于 2012-08-08T15:25:19.957 回答