询问用户是否确定,然后禁用按钮并提交表单

时间:2013-11-25 18:47:30

标签: javascript jquery html forms

我问用户“你确定吗?”单击表单提交按钮时:

{{ Form::open(array('url' => 'myhome/pic-remove', 'onsubmit' => 'return confirm(\'Are you sure?\');')) }}

我点击后停用提交按钮:

$('#submitbutton').click(function() {
    $('#submitbutton').hide();
    $('#isloading').show();  
});

问题是,如果用户“不确定”并点击“取消”,则提交按钮也会停用。

如果用户“确定”第一个问题并点击“确定”,我该如何停用提交按钮?

修改

好吧,我现在就这样,似乎有效

$('#submitbuttonconfirm').click(function() {
    var r = confirm('Are you sure?');
    if (r == true)
    {
        $('#submitbuttonconfirm').hide();
        $('#isloading').show();
        return true;
    }
    else
    {
        return false;
    }      
});

2 个答案:

答案 0 :(得分:2)

我认为问题是click事件在submit事件之前被触发,因此您甚至在询问用户之前隐藏了提交按钮。

您可以使用jQuery处理submit事件而不是使用click并禁用该按钮:

{{ Form::open(array('url' => 'myhome/pic-remove')) }}
$('form').submit(function(e) { // Use the id of the form here, if you have more than one
    if(confirm('Are you sure?')) {
        $('#submitbutton').hide();
        $('#isloading').show();
    } else {
        return false;
    }
});

答案 1 :(得分:0)

我假设顶部是您将要执行的JavaScript从服务器发送到客户端。我不确定你为什么这样做,而不是直接把它写成JavaScript,但我想这没关系。正如Givi所说,从确认对话框中获取响应,然后将其用作决策点。由于我不确定这是什么,我只是猜测这段代码,但它应该给你一个想法。

{
    { Form::open(
        array(
            'url' => 'myhome/pic-remove',
            'onsubmit' => 'if(confirm(\'Are you sure?\')){ $(\'#submitbutton\').hide(); $(\'#isloading\').show(); return true; } return false; '
        )
    ) }
}