javascript - 使用 jquery 提交表单,该表单有多个提交按钮而无需单击触发器?

标签 javascript jquery forms form-submit

想象一下:

<form id="form"> 
    <input type="text">
    <button type="submit" name="submit1" value="1">something1</button>
    <button type="submit" name="submit2" value="2">something2</button>
    <button type="submit" name="submit3" value="3">something3</button>
</form>

首先,当我编写 $('#form').submit() 时,将发送哪个提交值?第一个?

第二个问题,如何在没有 click 触发事件的情况下提交具有我想要的值的表单?有可能吗?例如,使用 2 提交值提交表单。

我想要这样做的原因是在发送我的表单之前使用 sweetalert 弹出确认窗口,所以这里是:

$('form').on('submit',function(e){
    form = $(this);
    e.preventDefault();
    swal({'some dialog'},function(isConfirm)
        {
            if(isConfirm)
                 form.submit;
                 \\If I use the click trigger I will get stuck in here again.
        })
});

最佳答案

还有一个替代方案 - 使用 FormData您可以创建一个 FormData 实例,添加您的 html form,修改条目,然后发送它。那么一切都在你的掌控之中。

编辑:根据您的编辑,您似乎在重新提交表单时遇到了问题。你可以这样处理。

var form = document.querySelector('form');
form.addEventListener('submit', {
    confirmed: false,
    handleEvent: function (event) {
        if (this.confirmed)
            return;

        event.preventDefault();
        doconfirm((confirmed) => {
            if (confirmed) {
                this.confirmed = true;
                form.submit();
            }
        })
    }
}, false);

或者,您可以通过在验证后取消绑定(bind) submit 处理程序并再次提交来解决问题:$('form').off('submit').submit()

关于javascript - 使用 jquery 提交表单,该表单有多个提交按钮而无需单击触发器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36037001/

相关文章:

javascript - Jquery 缩短代码

javascript - 在数组中添加了很多 var javascript 并删除了已插入的特定数组

javascript - 让 Liferay 7 弹出窗口在底层表单中填充值

javascript - 在 html 表单中存储和加载选定元素的正确方法是什么?

javascript - angularjs - ui.router 没有立即渲染 ui-view

javascript - 如何使用 SVG 的一个元素来更改同一 SVG 中另一个元素的不透明度?

javascript - 打算在匿名函数中使用 case `this` 吗?

javascript - jQuery - 通过悬停调用一个函数,然后调用另一个函数

javascript - 按字母顺序对列表进行排序,字符在末尾

javascript - jQuery 表单超时不提交 - e[h] 不是函数