2011-04-21 59 views
7

这是我在这里的第一篇文章 - 大家好谷歌浏览器不会触发单选按钮上的模糊事件?

我目前正在开发的支持CSS和jQuery的HTML表单。该表格将被'无经验的用户'使用,所以我的重点在于良好的可用性。因此,我正在向每个输入字段提供提示,并提供进一步的说明。为了显示我使用onfocus/onblur javascript事件的提示,所以只显示一次提示。当我只有输入字段type="text",但输入字段为type="radio"时,这种方式运行良好,我在使用谷歌浏览器时遇到了麻烦。

我在jsfiddle.net上做了一个快速示例,以便您明白我的意思。这里的代码与我在表单中使用的代码非常相似,因此我不打算在此处发布代码。除了谷歌浏览器之外,我所测试的每个浏览器都会弹出警报。我想知道为什么?有没有已知的解决方案或解决方法?

+0

警报在Chrome中10.0.0.648.205 Win64平台为我工作。我选择了单选按钮,然后将其从标签上拉开,导致它失去焦点。另外,如果我在关注窗口的同时关闭窗口,onblur事件会触发,并看到警报。 – 2011-04-21 13:36:38

+0

对我也适用 – Andre 2011-04-21 13:38:59

+0

不适合我; Chrome 10.0.648.205 Win7 – dooburt 2011-04-21 13:40:41

回答

3

Working sample

$('input').on({ 
    click: function (e) { 
     this.focus(); 
     $('#' + this.id + 'msg').show(); 
    }, 
    blur: function (e) { 
     $('#' + this.id + 'msg').hide(); 
    } 
}); 
+0

是的,它似乎手动设置单选按钮(点击时)的焦点是伎俩。我的工作版本:http://jsfiddle.net/54y69/11/ – mwallisch 2011-04-21 14:01:37

+0

@canon对不起,你是对的。删除我的评论。 – 2013-02-05 22:27:35

2

blur将在某些版本的Chrome(但不是我的版本10.0.648.205)上工作,但前提是您要离开整个元素集合。不知道这是否有帮助,但这将工作:

$('input:radio').click(function() { 
    alert('why does this not show up in google chrome?!'); 
}); 

HTH。

+0

对不起,'onBlur'是'radio'按钮元素的Javascript事件。设置此页------- http://www.javascriptkit.com/jsref/radio.shtml – 2011-04-21 13:40:54

+2

'onBlur'从什么?如果单选按钮是集合的一部分,它是模糊的集合还是控件本身?有含糊之处,也许为什么它不适用于Chrome? 'blur' collection = works,'blur'元素不会。 – dooburt 2011-04-21 13:43:07

4

quirksmode

Safari和Chrome不火 焦点/模糊事件,当用户使用 鼠标访问复选框,收音机 或按钮。文本字段,textareas和 选择框可正常工作。

有一些建议可以解决此问题here

+0

就像我在你引用的问题中所说的那样:我遇到了同样的问题,文本输入和无线电输入有事件“焦点”,但收音机没有在Webkit中触发此事件,所以这些事件被放在“更改”事件上。现在我有两个事件,文本输入的“焦点”和收音机的“更改”,都调用相同的回调。 – 2011-11-22 16:44:50

相关问题