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

Ask if user is sure, then disable button and submit form

本文关键字:按钮 表单 提交 然后 用户 是否      更新时间:2023-09-26

当点击表单提交按钮时,我问用户"你确定吗?":

{{ 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;
    }      
});

我认为问题是,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;
    }
});

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

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