0

我正在使用以下代码显示确认框。

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 

        )

但无论我从确认框中选择了什么选项,它都在执行整个代码。在执行整个事件代码后,它会弹出消息框。如何限制组合框等待确认框的响应并仅在用户选择“确定”时才执行事件代码(或“是”也建议我更改确认框中按钮文本的方法。我想将其设置为“是”,将“取消”设置为“否”)。

4

3 回答 3

3

您不能更改确认对话框中按钮的文本。它们内置在浏览器中。

如果您想对对话框进行更多控制,请使用 jQuery UI 中的Dialog,但它不允许您阻止 UI 线程进行输入,即您不能做一些简单的事情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>

只是一个小问题......如果您选择坚持使用内置的确认对话框,您可以将代码简化为

function show() {
    return confirm('Chnages you made will be lost. Do you want to continue?');
}
于 2013-03-16T07:00:44.337 回答
2

它正在执行这个函数中的所有代码,因为它不是一个函数。您正在使用括号()而不是花括号{}。pswg 建议的返回值方法也更好。

function show() { 
    return confirm('Changes you made will be lost. Do you want to continue?');
} // use curly braces, not parens here
于 2013-03-16T07:16:50.760 回答
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>

希望能帮助到你。

谢谢,湿婆

于 2013-03-16T07:20:03.780 回答