我有一个 RadioButtonList 控件,我想在用户尝试更改索引时执行 Javascript“确认”。当前 AutoPostBack 设置为 TRUE。当然,我可以从 javascript 函数等中调用 __doPostBack。我用 jQuery 尝试了一些东西,但你必须担心 mousedown 与 click,然后总是可以单击复选框标签来选择等等。有人对此有很好的解决方案吗?
明确地说,我正在寻找一种方法,在用户做出选择并触发回发之前,用确认框提示用户。
最佳答案
为什么不使用点击事件呢?这就是客户端回发事件的绑定(bind)方式。例如,给定一个名为“MyButtonList”的 RadioButtonList,将呈现以下 HTML:
<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>
下面的 jQuery 代码将完成您想要的:
已编辑以支持 IE
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);
}
});
});
关于asp.net - RadioButtonList 的 SelectedIndexChange 上的 JavaScript "confirm",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2610705/