2012-04-28 121 views
0

我有以下的JavaScript函数:用JavaScript功能验证

function validateLocality(object, args) { 
     if (document.getElementById("<%=ddlLocality.ClientID %>").value == "0") { 
      args.IsValid = false; 
     } 
     else { 
      args.IsValid = true; 
     } 
    } 

,并验证以下下拉列表:

<asp:DropDownList 
    ID="ddlLocality" 
    runat="server" 
    DataSourceID="DataSourceListTowns" 
    DataTextField="town_name" 
    DataValueField="town_id" 
    ToolTip="The Locality Where the User Lives" 
    AppendDataBoundItems="True" 
    ViewStateMode="Disabled"> 
<asp:ListItem Value="0">Select Locality</asp:ListItem></asp:DropDownList> 
<asp:CustomValidator 
    runat="server" 
    ControlToValidate="ddlLocality" 
    ErrorMessage="Select Locality" 
    ToolTip="Select Locality" 
    ID="validateLocality" 
    ClientValidationFunction="validateLocality()">*</asp:CustomValidator> 

的事情是它不验证下拉可言。

感谢任何帮助因为我破坏了我对这个

回答

0

ClientValidationFunction应只携带名称的功能的。它没有期待抓住一个Javascript表达式。因此,您的属性应该如下所示:ClientValidationFunction="validateLocality"注意号()

+0

我现在感觉很愚蠢:/ – 2012-04-28 13:17:05

0

你的大脑功能正在2个参数:

function validateLocality(object, args) 

但是,当你调用它,你不传递任何的..?

ClientValidationFunction="validateLocality()" 

给函数添加一个提醒,以确保它在提交时被调用。

function validateLocality(object, args) 
{ 
    alert("working"); 

    if (document.getElementById("<%=ddlLocality.ClientID %>").value == "0") 
    { 
      args.IsValid = false; 
    } 
    else 
    { 
      args.IsValid = true; 
    } 
} 
+0

警报显示,但自定义提供程序不显示asterix,我相信值是0事情是我在if语句中做了一个警报,它不进入if或其他有点奇怪 – 2012-04-28 12:20:26