禁用按鈕嗨我有一個表單與多個複選框。應該是,當主選項被選中並且子選項不被選中時,用戶不能繼續下一步。 我使用下面的代碼,但確保當您啓用和禁用另一個主選項的另一個子選項時,您可以繼續下一步而不檢查另一個主選項的子選項。如何禁用一個複選框時,其他檢查
的複選框:
<input name="input_1" type="checkbox" value="1" id="choice_1">
<input name="input_1.1" type="checkbox" value="1.1" id="choice_1_1">
<input name="input_1.2" type="checkbox" value="1.2" id="choice_1_2">
<input name="input_1.2" type="checkbox" value="1.3" id="choice_1_3">
<input name="input_1.3" type="checkbox" value="1.4" id="choice_1_4">
<input name="input_2" type="checkbox" value="2" id="choice_2">
<input name="input_2.1" type="checkbox" value="2.1" id="choice_2_1">
<input name="input_2.2" type="checkbox" value="2.2" id="choice_2_2">
<input name="input_3" type="checkbox" value="3" id="choice_3">
<input name="input_3.1" type="checkbox" value="3.1" id="choice_3_1">
<input name="input_3.2" type="checkbox" value="3.2" id="choice_3_2">
的Jquery/JS
$('#choice_1').change(function(){
if($(this).prop('checked')){
if($("#choice_1:checked").length) {
$("#field_18_104").hide(200);
}
checked = $("#choice_1_1:checked").length || $("#choice_1_2:checked").length || $("#choice_1_3:checked").length || $("#choice_1_4:checked").length;
if(!checked) {
var $diverror = $("<div id='error-form' class='error-form'><p>Error text</p></div>");
$("#input_18_26").append($diverror);
$('#form_next_button').prop('disabled', true);
return false;
} else {
$("#error-form").remove();
$('#form_next_button').prop('disabled', false);
}
} else {
$("#error-form").remove();
$('#form_next_button').prop('disabled', false);
// if($('#choice_18_26_3').prop('checked')){
// $('#choice_18_26_3').prop('checked', false).change();
// }
}
});
我也使用用於主選項和選項2和3的子選項的js代碼這會導致問題例如當主選項1在沒有子選項的情況下被檢查並且主選項2或3被子選項檢查。然後再次啓用該按鈕。
因此,實際上有3組子選項,當組1選中主選項並且子選項不是時,組2中的主選項和子選項用戶不能繼續。
當沒有子選項時檢查主選項時,用戶不應該能夠繼續。
你意識到你的''元素不是語義/編程組合在一起,因爲他們*所有*有不同的'name'屬性值?如果這是故意的,我不明白,或*知道*,你的理由,但如果它是偶然的,那麼我建議將它們分組在一起:name =「group1」''''name =「group2」'等等。 –
@DavidThomas無法對它們進行分組,是否有可能使用函數修復此問題? – can