立即点击单选按钮的jquery onchange事件

时间:2010-11-30 06:19:02

标签: jquery html

我正在尝试仅在选择某种类型的单选按钮时激活ID。下面是我的jQuery代码:

$(document).ready(function() {
   $('#Type').attr('disabled', 'disabled');
   $('input[@name=action]').change(function() {
     if ($("input[@name=action]:checked").val() == 'SomeKind')              
        $('#Type').removeAttr('disabled');
     else 
        $('#Type').attr('disabled', 'disabled');
    });
});

这是按预期工作但有一个缺陷。当我点击单选按钮SomeKind时,它不会立即激活Type,而是必须再次点击(页面上的任何位置)才能激活Type

我在IE7上

2 个答案:

答案 0 :(得分:3)

IE7在更改事件和单选按钮方面存在一些奇怪的问题,更改事件也不会触发,直到出现模糊。我曾经遇到类似的问题,在咬牙切齿之后,发现了这个问题:

  

http://norman.walsh.name/2009/03/24/jQueryIE

你可以使用Chinmayee的.click方法(但是当你使用键盘而不是鼠标时,检查并仔细检查一切是否正常工作),或者你可以为所有模糊和重新聚焦的单选按钮添加一个点击处理程序:

$(':radio').click(function() {
    try {
        this.blur();
        this.focus();
    }
    catch (e) {}
});

你只想要IE7这个恶心的kludge所以你可能想把它包装在条件评论中(kludge中的kludge)。我很确定IE8的单选按钮有同样的问题。

答案 1 :(得分:1)

如果action是您的复选框的名称,则使用click事件而不是更改,

$('input[@name=action]').click(function() {
     if (this.checked && $(this).val() == 'SomeKind')              
        $('#Type').removeAttr('disabled');
     else 
        $('#Type').attr('disabled', 'disabled');
});