Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/456.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在表单提交前等待3秒钟?_Javascript_Webforms_Settimeout - Fatal编程技术网

Javascript 如何在表单提交前等待3秒钟?

Javascript 如何在表单提交前等待3秒钟?,javascript,webforms,settimeout,Javascript,Webforms,Settimeout,我有以下代码: 函数checkAmount(){ var PayField=document.getElementById('paymentamount'); var Pound=document.getElementById('Pound'); 如果(PayField.value==“”){ PayField.style.border='1px#F00 solid'; Pound.style.color='#F00'; 警报(“您需要输入您希望捐赠的金额”); 返回false; } 返回tru

我有以下代码:

函数checkAmount(){
var PayField=document.getElementById('paymentamount');
var Pound=document.getElementById('Pound');
如果(PayField.value==“”){
PayField.style.border='1px#F00 solid';
Pound.style.color='#F00';
警报(“您需要输入您希望捐赠的金额”);
返回false;
}
返回true;
}
当用户键入有效金额并单击“支付”按钮时,表单应等待3秒钟,然后在等待3秒钟后提交


我尝试过使用
setTimeout()
,但根本不起作用。我不想将jQuery用于此操作,您能提供一个代码给我吗。

在表单中添加一个ID:

<form id="whatever">

假设您的表单id为
donationForm

函数checkAmount(){
如果(支票金额。已验证)
返回true;
checkAmount.validated=false;//我们将把属性分配给函数本身。
var PayField=document.getElementById('paymentamount');
var Pound=document.getElementById('Pound');
如果(PayField.value==“”){
PayField.style.border='1px#F00 solid';
Pound.style.color='#F00';
警报(“您需要输入您希望捐赠的金额”);
返回false;
}
setTimeout(函数(){
checkAmount.validated=true;
document.getElementById('donationForm').submit();
}, 3000);
返回false;
}


不应将“字符串”传递给setTimeout函数。向其传递一个函数(命名或匿名)。检查我的答案。另外一个技巧是,您可以将'waited'属性分配给函数本身,而不必创建'waited'全局变量。忘了这一点。旧习惯等+1,用于不使用
setTimeout()
通过传递字符串作为第一个参数来调用
eval()
var waited = false;
function checkAmount()
{
    var PayField = document.getElementById('paymentamount');
    var Pound = document.getElementById('pound');

    if (PayField.value == "")
    {
        PayField.style.border = '1px #F00 solid';
        Pound.style.color = '#F00';
        alert('You need to enter an amount that you wish to donate');

        return false;
    }
    if (waited)
    {
        return true;
    }
    waited = true;
    setTimeout(function() { document.getElementById('whatever').submit() }, 3000);
    return false;
}