带有是和否选项的确认框,在下拉列表中选择索引更改

时间:2013-03-16 06:54:48

标签: c# javascript jquery asp.net

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

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。)。

3 个答案:

答案 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>

希望它有所帮助。

谢谢, 希瓦