javascript - 如何延迟表单提交?

标签 javascript jquery html forms

我有一个表单,一旦用户单击“提交”按钮,它就会运行 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;
}

此处的表单脚本:

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

最佳答案

试试这个:

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

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

关于javascript - 如何延迟表单提交?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25286049/

相关文章:

javascript - 将 Canvas 拉伸(stretch)至完整宽度和高度以动态调整大小

javascript - 修复了父 div 中 div 的效果,但随着页面滚动,位置停留在屏幕上

javascript - 简单的 javascript 验证表单,但我对 JS 完全陌生

javascript - Protractor 没有运行 cucumber 的功能文件

javascript - 如何重新创建移动 Apple.com 菜单按钮动画?

CSS:Div宽度与其内容一样宽

javascript - 按数据属性和父子关系对li进行排序

javascript - 安装和使用 polymer 元素后未捕获的 DOMException

javascript - 谷歌地图不显示

javascript - 是否可以通过编程方式触发点击/拖动事件以启动轮播移动