2014-08-29 34 views
0

這裏是JQuery新手。當選擇其中一個選項(無線電)時,禁用某些輸入元素

我有一個約16個字段的搜索表單,其中大多數是文本框。其餘的是下拉菜單。我在這些領域下有3個單選按鈕。當選擇第一個時,表單中的一些字段應該被禁用。當選擇第二或第三個無線電選項時,應啓用所有字段。我有以下代碼格式this後。但它的名字只能禁用兩個文本框。比這段代碼更好嗎?

我們假設,單選按鈕名稱是option1,option2,option3

+0

請顯示HTML的最小表示形式,以及鏈接答案中的代碼實現,還有:在用例的上下文中定義'更好'。 – 2014-08-29 20:47:28

回答

1
$(":radio").change(function() { 
    if ($(this).val() == "option1") { 
     // When first button is selected, disable some fields 
     $("#field1, #field2, #field3").prop('disabled', true); 
    } else { 
     // Otherwise enable the fields 
     $("#field1, #field2, #field3").prop('disabled', false); 
    } 
}); 

只需在選擇器中添加更多字段以啓用和禁用所有適當的字段。

而不是列出所有的ID,你應該給他們一個班在HTML:

<input type="text" class="disable" name="whatever"/> 

然後,你可以這樣做:

$(".disable").prop('disabled', true); 

class="disable"禁用所有字段一次。

+0

':radio'是什麼意思?任何無線電點擊此頁面? – 2014-08-29 20:50:03

+0

而且,是否有更好的方法/練習/標準來禁用很多字段,而不是像在else部分那樣對它們進行硬編碼? – 2014-08-29 20:51:12

+0

這取決於你在做什麼。是否有一些規則應該啓用哪些字段?或者,也許你可以給他們上課並使用它。 – Barmar 2014-08-29 20:52:13

相關問題