0

我有以下 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>

问题是它根本没有验证下拉菜单。

感谢您的帮助,因为我为此伤透了脑筋

4

2 回答 2

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;
     }
}
于 2012-04-28T12:08:32.620 回答
0

ClientValidationFunction应该只带有函数的名称。它不期望携带 Javascript 表达式。因此,您的属性应如下所示:ClientValidationFunction="validateLocality"注意 no ()

于 2012-04-28T13:10:14.250 回答