このスクリプトが、個々のチェックボックス/ラジオボタンだけでなく、ページ上のすべてのラジオボタンとチェックボックスラベルにクラスを追加するのはなぜですか?
たとえば、次のボタンがあります。
<input class="required" id="Example31" name="Example3" type="checkbox" />
<label for="Example31">Example Input 3 Option 1</label>
<input class="required" id="Example32" name="Example3" type="checkbox" />
<label for="Example32">Example Input 3 Option 2</label>
<input class="required" id="Example4" name="Example4" type="radio" />
<label for="Example4">Example Input 4</label>
そしてこのスクリプト:
$("input.required").each(function() {
if ($(this + ":checkbox") || $(this + ":radio")) {
if (!$(this + ":checked").val()) {
var inputId = $(this).attr("id");
$("label[for=" + inputId + "]").addClass("error");
};
};
});
ボタンをクリックするとスクリプトが起動します。チェックボックスがオンになっていない場合、すべてのラベルにエラーが追加されます。これは正しいことです。ただし、1つのボックスをオンにすると、ラベルにエラーが発生することはありません。これは正しくありません。最初のグループのチェックボックスをオンにしても、ラジオボタンをオフのままにすると、そのラジオボタンはエラーとしてマークされます。
注:このスクリプトはまだ入力名を考慮していないことを知っています(したがって、同じ名前の1つのチェックボックスがオンになっている場合、もう1つは現在エラーを表示します)、先に進む前に彼のバグを解決しようとしています。