왜 클릭 이벤트를 사용하지 않습니까? 그것은 클라이언트 쪽 포스트 백 이벤트가 묶이는 방법입니다. 편집을 할
는
var rbList = $("input[name='MyButtonList']");
var checkedRB = rbList.filter(":checked");
rbList.filter(":not(:checked)").each(function() {
var origClick = this.onclick;
this.onclick = null;
$(this).click(function (evt) {
if(confirm("Post back?"))
{
origClick();
}
else
{
if(evt.preventDefault) { evt.preventDefault(); }
evt.returnValue = false;
checkedRB.attr("checked",true);
}
});
});
IE를 지원하기 위해 다음 jQuery 코드는 당신이 원하는 것을 성취 할 것이다
<table id="MyButtonList" border="0">
<tr>
<td><input id="MyButtonList_0" type="radio" name="MyButtonList" value="1" checked="checked" /><label for="MyButtonList_0">Hello World</label></td>
</tr><tr>
<td><input id="MyButtonList_1" type="radio" name="MyButtonList" value="2" onclick="javascript:setTimeout('__doPostBack(\'MyButtonList$1\',\'\')', 0)" /><label for="MyButtonList_1">Hello World 2</label></td>
</tr>
</table>
예를 들어, 다음과 같은 HTML 렌더링됩니다 ", MyButtonList"라는 RadioButtonList을 부여
비슷한 코드가 있습니다. 문제는 "확인"에서 "취소"를 눌러도 라디오 버튼이 계속 선택된다는 것입니다. 실제로 선택을 "방지"하지는 않습니다. –
죄송합니다. 그 요구 사항도 잘못 이해했습니다. 내 수정 코드를 참조하십시오. evt.preventDefault()를 사용하여 버튼 선택을 취소 할 수 있습니다. – zincorp
IE에서 FireFox와 다르게 라디오 버튼 취소를 처리하는 것으로 나타났습니다. 대신 현재 체크 된 버튼 (있는 경우)을 저장하고 다른 버튼의 클릭을 취소하면 복원해야합니다. 새로 편집 된 코드를 사용해보십시오. – zincorp