使用jquery进行下拉列表验证

时间:2011-12-14 07:24:48

标签: javascript jquery asp.net drop-down-menu jquery-validate

我想用jQuery验证dropdownlist。我的代码是:

<asp:DropDownList ID="ddlstate" runat="server" CssClass="dropdown">
    <asp:ListItem Value="0" Selected="True"> - Select State - </asp:ListItem>
    <asp:ListItem Value="AL">AL</asp:ListItem>
    <asp:ListItem Value="AK">AK</asp:ListItem>
    <asp:ListItem Value="AZ">AZ</asp:ListItem>
    <asp:ListItem Value="AR">AR</asp:ListItem>
    <asp:ListItem Value="CA">CA</asp:ListItem>
    <asp:ListItem Value="CO">CO</asp:ListItem>
    <asp:ListItem Value="CT">CT</asp:ListItem>
</asp:DropDownList>

我的jQuery验证是:

$(document).ready(function() {
    $("#aspnetForm").validate({
        rules:  <%=ddlstate.UniqueID %>: {
            required: "*"
        }
    },
    messages: <%=ddlstate.UniqueID %>: {
        required: "*" 
        },
    });

5 个答案:

答案 0 :(得分:0)

试试这个。添加一个名为dropdownvalidator的方法,该方法将验证下拉列表

$.validator.addMethod("dropDownValidator", function (value, element, parameters) {
        return (value != '0');
});

并在规则中指定dropdownvalidator方法,如下所示

rules: {
    myDropdown: {
        dropDownValidator: true
}

答案 1 :(得分:0)

If($("#ddlstate").Val() =="0")
{
    alert("Please select state");
}

答案 2 :(得分:0)

您必须将默认值保留为“”才能生效。

<asp:DropDownList ID="ddlstate" runat="server" CssClass="dropdown">
    <asp:ListItem Value="" Selected="True"> - Select State - </asp:ListItem>
    <asp:ListItem Value="AL">AL</asp:ListItem>
    ...

答案 3 :(得分:0)

这应该有效:

jQuery.validator.addMethod("state", function(value, element) { 
  return /A-ZA-Z/.test(value); 
}, "Please select a state");

$("#aspnetForm").validate();

<asp:DropDownList ID="ddlstate" runat="server" CssClass="dropdown state">

答案 4 :(得分:0)

如果您正在使用数据绑定来填充表单,则可以手动添加以空字符串作为值的ListItem,并将 required 属性添加到下拉列表中。然后,如果jquery验证程序未从列表中选择其他项,则验证将失败。


//aspx.cs code if using databinding
myList.Items.Insert(0, new ListItem("", ""));

// aspx code
<asp:DropDownList ID="myList" runat="server" required="true">/asp:DropDownList> 

// js code
var validator = $("#Form1").validate();