2012-04-28 124 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