0

次のコードを使用して、フォーム内のすべてのチェックボックスをループしています。ボックスはphpスクリプトから動的に生成されるため、チェックボックスの名前や数はわかりません。

どのチェックボックスがチェックされているかを確認する必要があるため、それらのチェックボックスのみをフォームを処理する PHP スクリプトに渡します。

 $("#panelform input:checkbox").each(function () {
    if(this.is(":checked")){
    fields = fields+"&"+this.name+"="+this.value;
}
});

スクリプトが this.is(":checked") に到達するとエラーになりますが、jquery であるため、コンソールにエラー メッセージが表示されず、停止するだけです。

最初の行の後に "this" を警告または console.log にすると、フォーム フィールドが表示されるので、それがうまく機能することがわかります。

4

4 に答える 4

5

で試してみてください

 if($(this).is(":checked")){

thisDOM内のノードへの単なる参照であるため(代わりにjQueryラッパーを使用してメソッドをチェーンする必要があります) is()

于 2013-01-14T15:51:30.430 に答える
3

これを試して:

if( this.checked)

thisはプレーンなDOMノードでcheckedあり、チェックされているかどうかを通知するプロパティです。プロパティが設定されているかどうかを確認するためだけにまったく新しいjQueryオブジェクトを作成するのは冗長です。

于 2013-01-14T15:52:18.810 に答える
2

そのコンテキストでthisは、jQuery オブジェクトではなく DOM 要素を参照し、DOM 要素にはメソッドがありませんis()。is メソッドを使用する場合は、jQuery オブジェクトでラップできます。

if($(this).is(":checked")){

または、DOM 要素のcheckedプロパティを使用します。

if(this.checked){
于 2013-01-14T15:52:33.177 に答える
1
$(this).is(':checked')

フォームをシリアル化したい場合は、これを試してください

$('your-form-selector').serializeArray()
于 2013-01-14T15:53:26.550 に答える