結局、これは特に修正が必要な問題ではないと判断しましたが、なぜそれが起こっているのかわからないのが気になります。
基本的に、私はいくつかのチェックボックスを持っています、そして私はユーザーがそれらの特定の数だけを選択できるようにしたいです。私はその効果を達成するために以下のコードを使用しています。
$j( function () {
$j('input[type=checkbox].vote_item').click( function() {
var numLeft = (+$j('#vote_num').text());
console.log(numLeft);
if ( numLeft == 0 && this.checked ) {
alert('I\'m sorry, you have already voted for the number of items that you are allowed to vote for.');
return false;
} else {
if ( this.checked == true ) {
$j('#vote_num').html(numLeft-1);
} else {
$j('#vote_num').html(numLeft+1);
}
}
});
});
そして、私がそれをテストしていたとき、私が使用した場合、私は気づきました:
$j('input[type=checkbox]').each( function () {
this.click()
});
Javascriptは私が期待するように反応しましたが、次のように使用すると次のようになります。
$j('input[type=checkbox]').each( function () {
$j(this).click()
});
実際には、カウンターのカウントが上がります。
カウンターを使用してカウントを維持するのが最も安全な方法ではないことは理解していますが、必要な量を超える量がデータベースに入力されないようにするサーバー側のエラーチェックがあります。これが私が決定した理由です。実際に修正する必要はありません。
編集:$ jは、noConflictモードでjQueryを使用する必要があるためです...