2014-02-20 3 views
0
내 프로젝트 내에서 다음 JQuery와 buttonset를 사용

와 두 번째 시간 이후 실패 (가) 다음 코드를 사용하여 프로그래밍 방식으로 상태를 "확인"변경JQuery와 buttonset이 라디오 버튼

<div id="TR1_Mode"> 
    <input type="radio" id="TR1_Mode_Dif" name="TR1_Mode_radio" value="Mode_Dif" ><label for="TR1_Mode_Dif">Differentiation</label> 
    <input type="radio" id="TR1_Mode_Int" name="TR1_Mode_radio" value="Mode_Int" checked="checked"><label for="TR1_Mode_Int">Integration</label> 
</div> 

(콘솔에서 시도) :

$('[name="TR1_Mode_radio"][value="Mode_Dif"]').attr("checked", false); 
$('[name="TR1_Mode_radio"][value="Mode_Int"]').attr("checked", true); 
$('#TR1_Mode').buttonset("refresh"); 
이 있지만, 반대로 같은 일을 수행 한 후 작동 할 수

:

$('[name="TR1_Mode_radio"][value="Mode_Dif"]').attr("checked", true); 
$('[name="TR1_Mode_radio"][value="Mode_Int"]').attr("checked", false); 
$('#TR1_Mode').buttonset("refresh"); 

체크 된 버튼은 선택 취소되지만 체크되지 않은 체크는 선택되지 않습니다. 내가 뭔가를 놓치고 있거나 이것이 jquery에서의 잘못입니까?

체크 버튼이 제대로 작동하는 것처럼 보이지만 동일한 목적을 충분히 채우지는 못합니다.

I TREID이 크롬 (32.0.1700.107 m)와 파이어 폭스 (27.0.1)는, 최신의 jQuery 버전을 시험 사용 : JQuery와-2.0.3.js와 JQuery와 - 1.10.2.js

+0

attr ("checked", false) 대신 removeAttr ("checked")를 시도하십시오. –

답변

0

$.prop$.attr 사이에 차이가 있습니다. 특히, attr은 html을 다시 작성하는 것과 동일하지만 prop은 실제로 DOM 객체의 값을 수정합니다.

$('[name="TR1_Mode_radio"][value="Mode_Dif"]').prop("checked", true); 
$('[name="TR1_Mode_radio"][value="Mode_Int"]').prop("checked", false); 

또는이 jQuery를 이전 버전 (< 1.6)에만 약간 행동 할 하나의 attr 방법을했기 때문에 당신이 온라인으로 찾을 수

$('[name="TR1_Mode_radio"][value="Mode_Dif"]').attr('checked', 'checked'); 
$('[name="TR1_Mode_radio"][value="Mode_Int"]').removeAttr('checked'); 

예 혼란 스러울 수 있습니다 작동합니다 : 그래서,이 일 것 이러한 두 가지 행동간에 일관성이 없습니다.

그 가치가 무엇인지에 관해서는 개인적으로 prop이 더 표현적이고 이해하기 쉬운 코드로 연결됩니다.

+0

좋아, Matt! 고마워,이 작품은 아주 좋아. (그냥이 소품을 더 좋아해. 컨트롤에서 값을 가져 오는 방법과 다시 설정하는 방법에 대한 문서를 그리워합니다. 일반적으로 나는 그것이 컨트롤의 API에서 발견 될 것이라고 기대하지만, 이것은 이것에 관해서는 매우 슬림합니다. 이런 종류의 정보와 관련하여 나에게 어떤 힌트가 있습니까? 많은 감사 :-) 그리고 위로 엄지! –

+0

때때로 codeacademy.com과 같은 코스를 통해 학습하는 것이 유용 할 수 있습니다. 이 답이 당신을 만족 시킨다면 받아 들여주십시오. –