如何根据我的以下要求处理Javascript的Confirm()?

时间:2010-10-05 19:00:08

标签: javascript asp.net jquery

我的要求就是这个。 以下步骤: -

  1. 在客户端上单击(按钮)
  2. 禁用按钮。
  3. 然后它应该提示OK或CANCEL。
  4. 如果OK,则触发OnClick事件(Code Behind)。
  5. 如果取消,则不要进行服务器端跳闸并启用按钮。
  6. 以下是我用于按钮的代码。

    <asp:Button ID="btn1" OnClientClick="this.disabled=true;return Confirm();" Text="Testing"  runat="server" />
    

    但不是我期望的,它是禁用按钮并提示确认,但如果用户点击取消则按钮保持为禁用。

4 个答案:

答案 0 :(得分:1)

无需禁用该按钮。如果没有单击确认框中的按钮,用户将无法执行任何操作。只需使用它。

 OnClientClick="return confirm('Are you sure you want to Submit?');"

答案 1 :(得分:1)

你已将其标记为jQuery,因此我建议使用jQuery定义一个事件处理程序,与OnClientClick属性分开:

<asp:Button runat="server" Text="Testing" CssClass="confirm-button" />
<script type="text/javascript">
    jQuery(function($) {
        $('.confirm-button').click(function(event) {
            $(this).attr('disabled', true);
            if (!confirm('Are you sure?')) {
                event.preventDefault();
                $(this).attr('disabled', false);
            }
        });
    });
</script>

然而,正如@Shoban指出的那样,没有必要禁用按钮,因为confirm是模态的。因为confirm是模态的,所以只有在解决confirm提示后,需要禁用按钮。因此,如果confirm的响应为true,则仅禁用该按钮,逻辑可能会更清晰:

        $('.confirm-button').click(function(event) {
            if (confirm('Are you sure?')) {
                $(this).attr('disabled', true);
            }
            else {
                event.preventDefault();
            }
        });

答案 2 :(得分:0)

在OnClientClick中尝试此操作 -

this.disabled=true;
var result = Confirm();
this.disabled = result;
return result;

如果您尝试在按钮上停用回发,请拨打return Confirm();

答案 3 :(得分:0)

仅在单击“确定”时禁用该按钮。

var customConfirm = function(){
  var proceed = confirm("are you sure");
  if(proceed){
    // disable button while server is posting back
  }
  return proceed;
}