2017-04-08 16 views
0

如果用戶改變選擇框我要禁用的形式內的所有字段,而不觸發選擇框和一個特定的ID爲輸入場= XYZ的選項。禁用除1個字段中的所有改變formfields後一個選擇框

我如何在快速和最簡單的方式做到這一點。

「#newsite_IS_HELPER」是選擇框的id

$('#newsite_IS_HELPER').change(function(){ 
    alert('What i have to do?'); 
}); 
+0

你是什麼意思*沒有t 。他觸發選擇框* –

+0

的選擇框至極改變不應該被禁用(和一個斯佩恰輸入字段太) - 香港專業教育學院編輯上面的代碼。 – newbieRB

回答

1

你可以通過選擇所有輸入單元的形式下,並排除你不想選擇即this元素是什麼(其中一個被觸發禁用動作即你的情況select)中並用#xyz輸入元件。

$('#your_form_id :input:not(#xyz):not(#newsite_IS_HELPER)').prop("disabled", true); 

$('#newsite_IS_HELPER').change(function(){ 
 
    var this_val = $(this).val(); 
 
    var disable_all = false; 
 
    if(this_val != "1"){ 
 
     disable_all = true; 
 
    } 
 
    $('#your_form_id :input:not(#xyz):not(#newsite_IS_HELPER)').prop("disabled", disable_all); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<form id="your_form_id"> 
 
    <input id="xyz"> 
 
    <input><input><input><input><input> 
 
    <select id="newsite_IS_HELPER"> 
 
    <option value="1">enable all</option><option value="2">disable all</option><option value="3">disable all again</option> 
 
    </select> 
 
</form>

+0

我怎麼可以做「不」兩個元素? – newbieRB

+0

@newbieRB是的,你可以像我一樣爲2個元素做一個':not'。檢查小提琴 –

+0

@newbieRB你試過嗎? –

0

我怎麼辦,

$ ('#newsite_IS_HELPER').change(function(){ 
    $("input").attr("disabled", "disabled");  
    $(this).attr("disabled",false); 
    $("#xyz").attr("disabled",false); 
}); 

或者,否則,你可代替attr的使用道具,像波紋管我的代碼,

​​
相關問題