2010-11-30 3 views
3

あるタイプのラジオボタンが選択されている場合にのみ、IDをアクティブにしようとしています。以下はjQueryのコードです:ラジオボタンのjquery onchangeイベントが瞬時に

$(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'); 
    }); 
}); 

これは意図したとおりですが、1つの欠陥があります。ラジオボタンSomeKindをクリックすると、瞬時にTypeがアクティブにならず、代わりにTypeがアクティブになるようにもう一度(ページ上のどこかで)クリックする必要があります。

アクションはあなたのチェックボックスの名前である場合、私はIE7

+0

タイプを有効/無効にするには、SomeKindラジオボタンでclickメソッドを記述する必要があります。現在はどこにもあなたの名前が変更されていると言われていますSomeKindの変更時にタイプします –

+0

クリックメソッドは名前アクションでラジオボタン全体にあり、選択したものがSomeKindであるかどうかをチェックしてからタイプを無効/有効にします。それ以外はどうすればいいですか? –

+0

あなたはどのバージョンのjQueryを使用していますか? 1.2.6?あなたはアップグレードできますか? –

答えて

1

日午前、その後、代わりに変更の場合をクリックして使用し、

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

IE7は、変更イベントやラジオボタン、変更といくつかの奇妙な問題を持っていますぼやけが発生するまでイベントは発生しません。私はかつて同様の問題に遭遇したと、多くの歯をオフに歯ぎしりした後、これを見つけた:

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

あなたがChinmayeeの.clickアプローチを使用します(しかし、あなたが使用している場合、すべてが正常に動作することを確認し、ダブルチェックすることができますむしろマウスよりもキーボード)か、ぼかしや再集束すべてのラジオボタンをクリックハンドラを追加することができます。

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

あなたはprobabたいので、あなたが唯一のIE7のために、この嫌なその場しのぎをしたいです条件付きのコメント(kludge内のkludge)でラップしたい。私はかなりIE8のラジオボタンが同じ問題を抱えていると確信しています。

関連する問題