2

カスタム jquery プラグインを使用して、ユーザーが入力フィールドに注目したときにヘルプ ポップアップを処理します。しかし、私は奇妙な問題に遭遇しました。プラグインは、次のコードを使用してヘルプ ポップアップをトリガーします。

$(this).focus(function(){
    // Show popup help panel here
});

ただし、このコードが type="checkbox" の入力に適用されると、ヘルプ ポップアップが表示されますが、チェックボックスの値はすぐに無効になるため、オンからオフ、またはその逆に変化していないように見えます。これは IE9 と FF6 で発生します (他のブラウザでは試していません)。気が狂っていないことを確認するために、この非常に単純なコードを試しましたが、問題は引き続き発生しました。

...HTMLで:

<input id="test" type="checkbox" checked="checked" />

... 頭の中 - javascript

$('#test').focus(function(){
    alert("help!");
});

アラートは表示されますが、チェックボックスの値は変更されません (または、変更されたが元に戻されたと思います)。

誰でもこれに光を当てることができますか?

4

2 に答える 2

3

チェックボックスの「フォーカス」にバインドするのはなぜですか?

「フォーカス」は主にテキストボックスまたはテキストエリア用であるため、それは私にはあまり意味がありません。.clickまたは代わりに使用し.changeます。運が良いと思います。

jsfiddle (http://jsfiddle.net/65CRb/1) でいくつかのテストを行いましたが、バインディングfocusは Chrome でもまったく機能しません。IE/FF で、フォーカスしたときに実際のコントロール自体に伝播しない奇妙なイベントが発生しているのではないかと思います。

于 2011-08-19T13:50:25.223 に答える
0

focuscheckedチェックボックスのプロパティは変更されません。チェックされたプロパティを明示的に変更する必要があります。このようなもの。

$('#test').focus(function(){
    this.checked = !this.checked;
});
于 2011-08-19T13:51:34.617 に答える