2012-02-21 9 views
0

私はいくつかのフォーム入力用にTelerikのドロップダウンリストを使用していますが、jqueryクライアント側で空ではないことも検証しています。これは私が持っているものです - それは間違いなくコントロールを検証しますが、その親を探すことによってオブジェクトにクラスを追加することはできません。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");  
    } 
} 

.NET

<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> 

私は、ドロップダウンをラップしているdiv要素に「エラー」のクラスを追加したいんだjqueryのから見ることができるように検証されています。前述のように、検証は完全に機能しますが、div .selectWrapではクラスが追加されません。

私はいつもdivでクラスを参照したり、IDを作成することができますが、私はいくつかのドロップダウンでこれをやっています。私は一貫した解決策を探しています。

洞察力があれば幸いです。ありがとう。

答えて

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");  
    } 
} 
+0

優しくありがとうございます。 – sacbeme