私はjQueryの初心者で、特にチェックボックスを送信する前にフォームを検証する方法を知りたいと思っていました.
ユーザーがそのステップを完了した場合にチェックボックスをオンにする簡単なチェックリストフォームを作成しています。私が計画しているのは、「チェックされていない」チェックボックスがある場合、スクリプトはフォームの送信を防ぎ、色で強調表示することです。
これが私のコードです:
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Untitled Document</title>
<style>
.error {
background-color: #F00;
}
.valid {
background-color: #0F0;
}
</style>
<script type="application/javascript" src="http://code.jquery.com/jquery-1.8.2.min.js"> </script>
<script type="application/javascript">
$('#button').on('click', function() {
var $checkboxes = $('.container [type=checkbox]');
$checkboxes.filter(':checked').parent().removeClass('error').addClass('valid');
$checkboxes.not(':checked').parent().removeClass('valid').addClass('error');
});
</script>
</head>
<body>
<div class="container">
<input class="tick" id="option1" type="checkbox">
</div>
<div class="container">
<input class="tick" id="option1" type="checkbox">
</div>
<input id="button" type="button" value="check">
</body>
</html>
ここで私がしようとしているのは、ユーザーがボタンをクリックすると、スクリプトはチェックされていないチェックボックスをすべて赤で強調表示し、チェックされているすべてのチェックボックスを緑で強調表示します。
ただし、スクリプトが機能していません。スクリプトの何が問題になっていますか? これを行うためのより効率的な方法に関する提案はありますか?