gpt4 book ai didi

jQuery Submit() 不包含提交按钮

转载 作者:行者123 更新时间:2023-12-03 21:46:07 25 4
gpt4 key购买 nike

我有一个表单,其中包含多个元素和两个提交按钮,一个是“保存”,另一个是“删除”。在“删除”按钮上,我使用 jQuery 对话框来确认用户想要删除。然后,如果他们确认,我就会提交表格。问题是 jQuery.submit() 在发布时不包含原始提交按钮,因此我无法在服务器上区分“删除”和“保存”,因为它们都使用相同的表单。如果我删除 jQuery 对话框,则提交按钮值将按预期发布。这必须很常见,我希望有人可以分享解决方案。我到处搜索,找不到任何有用的东西(是我一个人的问题还是谷歌最近很糟糕?)

感谢您的帮助...

编辑:

提交按钮确实设置了名称和值。如果不使用 jQuery.submit() 它工作正常

最佳答案

基于 karim79 的回答:

$("input[type=submit], input[type=button], button").click(function(e) {
var self= $(this),
form = self.closest(form),
tempElement = $("<input type='hidden'/>");

// clone the important parts of the button used to submit the form.
tempElement
.attr("name", this.name)
.val(self.val())
.appendTo(form);

// boom shakalaka!
form.submit();

// we don't want our temp element cluttering up the DOM, do we?
tempElement.remove();

// prevent default since we are already submitting the button's form.
e.preventDefault();
});
<小时/>

更新:

我刚刚意识到上面的代码可能不是您正在寻找的:

如果您在表单元素本身上调用提交($("form").submit();),您将需要这样的内容:

$("form").submit(function(){
var form = $(this);
$("input[type=submit], input[type=button], button", form).eq(0).each(function(){
var self= $(this),
tempElement = $("<input type='hidden'/>");

// clone the important parts of the button used to submit the form.
tempElement
.attr("name", this.name)
.val(self.val())
.appendTo(form);
});
});

它将在提交表单之前将第一个按钮元素的名称和值添加到DOM(我不确定这里的默认浏览器行为是什么)。请注意,这不会从 DOM 中删除 tempElement。如果出现错误并且未提交表单,则该元素将保留,如果您不处理这一点,您将会遇到问题。

关于jQuery Submit() 不包含提交按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4605671/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com