当用户关注输入字段时,我们使用自定义 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!");
});
显示警报,但复选框值未更改(或已更改但随后更改回来,正如我认为正在发生的那样)。
任何人都可以对此有所了解。