2012-11-30 54 views
1

我旁邊有文字輸入一串單選按鈕。當一個單選按鈕狀態改變時,我運行一個方法獲取所有單選按鈕的類「.IdPassportRadioButton」。對於每個單選按鈕,我想查找下一個文本輸入,並根據單選按鈕啓用或禁用該輸入。JQuery的查找下一個項目通過

HTML如下所示:

<div class="editor-container" style=""> 
     <div class="editor-label"> 
      <%=Html.RadioButtonFor(m => m.IsPassport, false, 
             new { @class = "IdPassportRadioButton" })%> 
      ID Number 
     </div> 
     <div class="editor-field"> 
      <%=Html.TextBoxFor(m => m.IdentityNumber, 
            new { @class = "textbox IdPassportTextBox"})%> 
     </div> 
    </div> 

JQuery的方法:

$(".IdPassportRadioButton").each(function() { 
     if ($(this).is(":checked")) { 
      $(this).next(".IdPassportTextBox").removeAttr("disabled"); 
     } else { 
      $(this).next(".IdPassportTextBox").attr("disabled", "disabled"); 
      } 
    }); 

正如你可以看到我試圖找到類 「.IdPassportTextBox」 下一個文本框,但是,這並不工作。除了獲取下一個文本框的行之外,一切都可以工作。

任何建議

+0

這是我會怎麼做 - > [** ** FIDDLE(http://jsfiddle.net/bbwYx/1/) – adeneo

回答

1

您可以使用closest()與選擇"editor-container"帶班IdPassportTextBox達到parent of TextBox和使用find()與選擇".IdPassportTextBox"方法來訪問文本框。

$(".IdPassportRadioButton").each(function() { 
    if ($(this).is(":checked")) { 
     $(this).closest(".editor-container").find(".IdPassportTextBox").removeAttr("disabled"); 
    } else { 
     $(this).closest(".editor-container").find(".IdPassportTextBox").attr("disabled", "disabled"); 
     } 
}); 
+0

大這工作,剛添加的 「」到「編輯容器」 – SneakyPeet

+0

歡迎您,更新了我的答案只是忘了點。 – Adil

1

使用jQuery的'.Parent()方法來獲得封閉的‘編輯容器’的舉行,然後選擇‘IdPassportTextbox’出來的那個。