我使用以下代码显示确认框。
protected void cmbPayerBucketMain_SelectedIndexChanged(object sender, EventArgs e)
{
ClientScriptManager CSM = Page.ClientScript;
if (!String.IsNullOrEmpty(hiddenF1.Value) || !String.IsNullOrEmpty(hiddenF2.Value))
{
CSM.RegisterClientScriptBlock(this.GetType(), "Confirm", "show();", true);
}
//Some Code
}
功能show()如下
function show()
(
if(confirm('Chnages you made will be lost. Do you want to continue?'))
{ return true; }
else
{ return false;
}
return
)
但无论我从确认框中选择了什么选项,它都在执行整个代码。执行完整个事件代码后,弹出msg框。如何限制组合框等待确认框的响应并仅在用户选择“确定”时执行事件代码(或“是”也建议我在确认框中更改按钮文本的方式。我想要把它改为YES,取消NO。)。
答案 0 :(得分:3)
您无法在确认对话框中更改按钮的文本。它们内置于浏览器中。
如果你想要更多地控制对话框,请使用jQuery UI中的Dialog,但它不允许你阻止UI线程输入,即你不能做一些像{{1一样简单的事情并在下一行获得结果。我建议你阅读一些关于如何处理用户与对话框交互结果的文档。特别是,请参阅文档中的this example。我将尝试在这里修改一些简单的例子:
confirm(...)
只是一个小问题......如果您选择坚持使用内置的确认对话框,则可以将代码简化为
<script>
$(function() {
$( "#dialog-confirm" ).dialog({
resizable: false,
height:140,
modal: true,
buttons: {
"Yes": function() {
// whatever you want to run when user clicks 'yes'.
...
$( this ).dialog( "close" );
},
"No": function() {
$( this ).dialog( "close" );
}
}
});
});
</script>
<div id="dialog-confirm">
...
</div>
答案 1 :(得分:2)
它正在执行此函数中的所有代码,因为它不是函数。您正在使用parens ()
而不是花括号{}
。方法p.s.w.g.建议返回值更好。
function show() {
return confirm('Changes you made will be lost. Do you want to continue?');
} // use curly braces, not parens here
答案 2 :(得分:0)
请尝试以下代码进行确认框自定义。
<script src="../Scripts/jquery-1.4.1.min.js" type="text/javascript"></script>
<script src="../Scripts/jquery.confirm.js" type="text/javascript"></script>
<script type="text/javascript">
function ShowConfirm(Title, Message, OkBtnCaption, CancelBtnCaption, ButtonID) {
var elem = $(this).closest('.item');
$.confirm({
'title': Title,
'message': Message,
'buttons': {
OkBtnCaption: {
'class': 'blue',
'action': function () { $('#' + ButtonID).click(); },
'id': 'okBtn'
},
CancelBtnCaption: {
'class': 'gray',
'action': function () { },
'id': 'cancelBtn'
}
}
});
return false;
}
</script>
希望它有所帮助。
谢谢, 希瓦