如何延迟表单提交?

Dan*_*mer 2 html javascript forms jquery

我有一个表单,一旦用户点击提交按钮 - 它运行 2 个功能 - (1) 它弹出一个 div,上面写着“项目已成功添加到购物篮”,然后 (2) 一个预填充功能将所选选项发送到Mals-E 购物车。

它有效,但我需要做的是在弹出窗口显示大约 5 秒之前不要让表单提交 - 当前它闪烁一秒钟,因为表单是立即使用预填充功能提交的。

任何人都可以帮忙吗?

脚本如下:

function showDiv(f) {   
    document.getElementById('basket-center').style.display='block';
}   

function prefill(f) {

    var val = document.forms["basket"].elements["product[2]"].value;
    val = val + gettext(document.forms["form"].elements['users']);
    document.forms["basket"].elements["product[2]"].value = val;

    document.forms["basket"].elements["price"].value = document.forms["form"].elements['sum'].value;

    return false;
}
Run Code Online (Sandbox Code Playgroud)

表单脚本在这里:

<form id="basket" name="basket" action="http://ww8.aitsafe.com/cf/add.cfm" method="post" onsubmit="showDiv(); prefill();">
    <input name="userid" type="hidden" value="A1251773"/>
    <input type="hidden" name="nocart"/>
    <input name="product[]" type="hidden" value="{b}Sage 50 Accounts (The VAT Edition) 2014{/b}"/>
    <input name="product[2]" type="hidden" value="{br}"/>
    <input name="product[3]" type="hidden" value="{br}FREE Installation onto 1 Server/PC & Same Day Download when ordered before 3pm"/>
    <input name="price" type="hidden" value=""/>
    <input name="noqty" type="hidden" value="1"/>
    <input name="thumb" type="hidden" value="sage50-thumb.png"/>
    <input name="return" type="hidden" value="http://10.10.0.195/reality-solutions-development/sage-50-accounts.php"/>
    <input type="image" src="img/buynow-button-green.jpg" border="0" alt="Buy Now" style="float:right; margin-top:-24px"/> 
</form>
Run Code Online (Sandbox Code Playgroud)

Chr*_*ler 5

尝试这个:

//html
<form id="my_form">
    <button id="my_button">submit</button>
</form>

//javascript
var my_form = document.getElementById("my_form"), button = document.getElementById("my_button");
my_form.onsubmit = function() {
    return false;
}

button.onclick = function() {
 setTimeout(function() {
    my_form.submit();
 }, 5000);
   return false;
}
Run Code Online (Sandbox Code Playgroud)

工作 jsfiddle:http : //jsfiddle.net/njoqnwwf/