使用jquery验证下拉列表

时间:2012-02-21 18:01:46

标签: jquery .net validation drop-down-menu telerik

所以我使用Telerik的下拉列表获取了许多表单输入,我也在验证它们是不是空的jquery客户端。这就是我所拥有的 - 它肯定会验证控件,但我不能通过查找它的父级来为对象添加类。

Jquery的:

function validateCombo(source, args) {

    var combo = $find("<%= listWorkType.ClientID %>");
    var text = combo.get_text();
    if (text.length < 1) {        
        args.IsValid = false;
         combo.parents("div.selectWrap").addClass("error");
    }
    else {              
        args.IsValid = true;   
        combo.parents("div.selectWrap").removeClass("error");     
    }
}

达网络

<div class="selectWrap"> <rad:RadComboBox ID="listWorkType" Width="338" runat="server" InputCssClass="dropdown"></rad:RadComboBox></div>
<asp:CustomValidator ID="RFVDesiredJob" runat="server" Display="Dynamic" CssClass="formtext" ClientValidationFunction="validateCombo" ErrorMessage="Required" ></asp:CustomValidator>

正如你从jquery中看到的那样,我想在div中添加一个'error'类,它包含了被验证的下拉列表。如上所述,验证工作正常,但div .selectWrap不会添加类。

我总是可以按类引用div或者创建一个ID但是我正在做这个以获得一些下拉,我正在寻找一个统一的解决方案。

非常感谢任何见解。感谢。

1 个答案:

答案 0 :(得分:0)

看起来你正在尝试在非jQuery对象上使用jQuery,$ find会提取你的Telerik客户端对象,因此combo.parents(..)会抛出异常。你可以尝试这样的事情:

 function validateCombo(source, args) {
        var combo = $find("<%= listWorkType.ClientID %>");
        //fetch the jQuery element as well
        var jqueryComboItem = $('#' + "<%= listWorkType.ClientID %>"); 
        var text = combo.get_text();
    if (text.length < 1) {        
        args.IsValid = false;
        jqueryComboItem.parents("div.selectWrap").addClass("error");
    }
    else {              
        args.IsValid = true;
        jqueryComboItem.parents("div.selectWrap").removeClass("error");     
    }
}