私は、ユーザーが各フィールドセットの中に一つだけのチェックボックスをクリックすることを可能にする基本的なチェックボックスのクリック機能を持っている(4つのフィールドセットを含む各numberousのチェックボックスがあります。これは(jQueryの検証およびチェックボックスをクリックして機能
$(document).ready(function(){
$('input[type=checkbox]').click(function(){
// get the fieldset class
var fieldset = $(this).parents('fieldset').attr('class');
// set the number of checked
var numChecked = $('.'+fieldset+' input:checked').size();
// if more than 1
if(numChecked > 1){
alert('Please select only one option per breakout session.')
$) .ATTR(偽、「確認」);}
});
その後、私は少なくとも一つのチェックボックスがフォームを投稿する前に選択されていることを確認するフォーム上の機能を提出しています
$('form[name=mainForm]').submit(function(){
var error = '';
// loop through each fieldset
$('fieldset',this).each(function(){
// set the number of checked for this fieldset
var numChecked = $('input:checked',this).size();
// if none are checked
if(!numChecked){
// set the error var
error = 'At least one of your time sessions has no checkbox selected!';
// add class to show user
$(this).addClass('errorSessions');
}
else{
$(this).removeClass('errorSessions');
}
});
// if any errors, show them and don't allow the form to be submitted
if(error.length){
alert(error);
return false;
}
$("#mainForm").validate();
フォームは完全に検証され、すべてが初めて完全に発生します。問題は、フォームを送信すると検証が行われ、「少なくとも1つの時間セッションにチェックボックスが選択されていません」というエラーが表示されることです。 - その時点で、最初にチェックされていないフィールドセット内の複数のチェックボックスを選択すると、チェックボックスのクリック機能は無視され、フィールドセット内で複数のチェックボックスを選択できます。
誰か助けてもらえますか?
私は考えていましたが、フォームはもう少し複雑です...私はまた、複数のフィールドセットにわたって同じ名前を持つ各チェックボックスで発生する変更機能を持っています。 1つは所定のフィールドセット内で選択されます。ラジオボタンでこれを試してみると思いますが、うまくいきませんでしたが、別のショットをつけることができます。しかし、私は最初のケースでなぜ機能が無効になるのだろうかと疑問に思っています。それとも、クラスを変更して何かを持っていますか? – jweisberg