2012-02-21 104 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 2012-02-29 16:51:22