2017-04-16 16 views
0

私は2つのチェックボックスを持っています。私はどちらかではなく、どちらかが必要ですが、少なくとも1をチェックしてください。複数選択ではありませんが、ゼロは受け入れられません。チェックされている場合、この行はjQuery('#wiz_menu.nav-tabs > .active').next('li').find('a').trigger('click');で動作します。以下は、常に警告しています。チェックするチェックボックスをチェックする方法は?

私はボタンを提出し使用していないか、私はvalidate pluginを使用しているだろう

UPDATE。あなたが使用できるjQueryを使って、ウィザードの次の<button type="button" class="btnNext">Next step</button>

HTML

<div class="form-group"> 
    <label for="usp-category-8" class="usp-checkbox usp-cat usp-cat-0"> 
     <input type="checkbox" name="usp-category[]" id="usp-category-8" value="8" data-required="true" class="usp-input usp-input-category"> 
     Cultura 
    </label> 
    <label for="usp-category-7" class="usp-checkbox usp-cat usp-cat-0"> 
     <input type="checkbox" name="usp-category[]" id="usp-category-7" value="7" data-required="true" class="usp-input usp-input-category"> 
     Scienze 
    </label> 
    <input type="hidden" name="usp-category-required" value="1"> 
</div> 

JS

jQuery('.btnNext').on("click", function(){ 
    if(jQuery(".tab-pane").is("#step1")) { 
    var isChecked = false; 
    $('input[type=checkbox]').on("change", function() { 
     isChecked = true; 
    }); 
    if (isChecked) { 
     jQuery('#wiz_menu.nav-tabs > .active').next('li').find('a').trigger('click'); 
    } else { 
     alert('Please, check at least one checkbox!'); 
    } 
    } 
}); 
+0

可能な重複:http://stackoverflow.com/q/2204250/80836は – Andreas

+1

変化にtrueに設定すると、オフにしてもtrueに設定します。しかし、それがまったく動作しない場合は、クリックを使用してみてください(ロジックはまだ間違っています)。 – inarilo

+2

なぜラジオボタンを作れないのですか? – JJJ

答えて

2

を行くための通常のボタンであるis

$('#form').on('submit', function(e) { 
 
    e.preventDefault(); 
 
    if ($('input[name="hi"]').is(':checked')) { 
 
    console.log('checked'); 
 
    } 
 
}); 
 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<form id="form"> 
 
    <input type="checkbox" name="hi" value="hi">Hallo<br> 
 
    <input type="checkbox" name="gb" value="gb">Tschuss<br> 
 
    <input type="submit" value="Submit"> 
 
</form>

は、あなたのコードに適応:

$('.btnNext').click(function(e) { 
 
\t e.preventDefault(); 
 
    if ($('#usp-category-7').is(':checked') || $('#usp-category-8').is(':checked')) { 
 
    console.log('at least one is checked'); 
 
    } 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="form-group"> 
 
    <label for="usp-category-8" class="usp-checkbox usp-cat usp-cat-0"> 
 
     <input type="checkbox" name="usp-category[]" id="usp-category-8" value="8" data-required="true" class="usp-input usp-input-category"> 
 
     Cultura 
 
    </label> 
 
    <label for="usp-category-7" class="usp-checkbox usp-cat usp-cat-0"> 
 
     <input type="checkbox" name="usp-category[]" id="usp-category-7" value="7" data-required="true" class="usp-input usp-input-category"> 
 
     Scienze 
 
    </label> 
 
    <input type="hidden" name="usp-category-required" value="1"> 
 
    <button class="btnNext">Next</button> 
 
</div>

+1

それは私が持っているサブミットボタンではない、そうでなければ、私はバリデーションプラグインを使用していたでしょう、それはウィザードの次に行く通常のボタンです –

+0

これは、 'is' @ RobertoMarrasの使い方の例です。 – inarilo

+0

okありがとう、私はこれを正しければ受け入れるが、私が自分のケースで採用した解決策については私自身の答えも掲載している。 –

1

コメントのおかげで、私は個人的に彼らのラジオボタン作り、このようにそれを解決しました。しかし、私はそれが正しいので、他の答えを受け入れます。

jQuery('.btnNext').on("click", function(){ 
    if(jQuery(".tab-pane").is("#step1")) { 
    if($('input[type=radio').is(':checked')) { 
     jQuery('#wiz_menu.nav-tabs > .active').next('li').find('a').trigger('click'); 
    } else { 
     alert('Please, check at least one checkbox!'); 
    } 
    } 
}); 
関連する問題