JavaScript - 验证功能

时间:2012-02-01 23:55:17

标签: javascript asp.net validation customvalidator

我需要验证ASP.NET项目中的DropDownList,并尝试使用JavaScript,即使我以前从未使用过它。

我正在使用以下ASP声明和代码JavaScript:

ASP声明:

<asp:DropDownList ID="ddl1" runat="server" onprerender="ddl1_PreRender" ValidationGroup="AddNewCollection">
</asp:DropDownList>
<asp:CustomValidator ID="CustomValidator1" runat="server" ErrorMessage="Choose Type!"
ControlToValidate="ddl1"  ForeColor="Red" ValidationGroup="AddNewCollection" ClientValidationFunction="clientSideCheckValue"></asp:CustomValidator>>

JavaScript代码:

 <script type="text/javascript">
    function clientSideCheckValue(source, args) 
     {
       var result1 = args.Value;   
       var rsult2 = document.getElementById("ddl1").value;
       if (result2 == null) {
          args.IsValid = false;
          return true;
       }
      args.IsValid = true;
    }
</script>

我对上面提到的代码有两个问题:

1.为什么当我打印此行的代码 var result1 = args.Value; intelisense时,我不会选择“值”扩展名。

2.这行JavaScript代码 var rsult2 = document.getElementById(“ddl1”)。value;

我收到此错误消息 Microsoft JScript运行时错误:需要对象。您知道为什么我遇到此问题以及如何解决此问题?

提前谢谢。

2 个答案:

答案 0 :(得分:2)

  1. intelisense无法知道args具有哪些属性/方法,因此它无法为您提供选项。

  2. 很可能你正在使用母版页,在这种情况下,元素的id值会改为像ct100_ddl1这样的东西,不能完全记住我的顶部头。

  3. 建议你使用一个不错的浏览器开发这个东西,chrome或FF + firebug,这样你就可以检查html并调试js。

答案 1 :(得分:1)

@Paul:“intelisense无法知道args具有哪些属性/方法,因此它无法为您提供选项。”绝对正确。

@迈克尔:

假设您的JavaScript位于.aspx标记中,请将您的行更改为var rsult2 = document.getElementById(“&lt;%= ddl1.ClientID”%&gt;)。value;。这将在脚本块中呈现DropDownList的实际客户端ID。

此外,您似乎只是确保选择了一个选项。添加<asp:RequiredFieldValidator />并将ControlToValidate属性设置为“ddl1”会更容易,如果这就是你要做的全部。

希望这有帮助。