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