2010-11-30 4 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'); 
    }); 
}); 

의도 한대로 작동하지만 하나의 결함이 있습니다. SomeKind 라디오 버튼을 클릭하면 즉각적으로 Type이 활성화되지 않고 페이지 대신 아무 곳이나 클릭하여 Type을 활성화해야합니다.

행동이 체크 박스의 이름 인 경우 나 IE7

+0

유형을 활성화/비활성화하려면 SomeKind 라디오 버튼을 클릭 방법을 써야합니다. 현재 아무데도 변경되는 언급 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 내의 kludge)으로 감싸고 싶다. 나는 IE8의 라디오 버튼이 똑같은 문제가 있다고 확신한다.

관련 문제