Jquery 检测单击了哪个按钮
我有以下jQuery:Jquery 检测单击了哪个按钮,jquery,html,forms,Jquery,Html,Forms,我有以下jQuery: $('form').one('submit', function(e) { e.preventDefault(); var id = $(this).data("id"); $("input.id-"+id+".column-name").val($("span.column-name.id-"+id).html()); $("input.id-"+id+".column-ext").val($("span.column-ext.id-"+
$('form').one('submit', function(e) {
e.preventDefault();
var id = $(this).data("id");
$("input.id-"+id+".column-name").val($("span.column-name.id-"+id).html());
$("input.id-"+id+".column-ext").val($("span.column-ext.id-"+id).html());
$("input.id-"+id+".column-dept").val($("span.column-dept.id-"+id).html());
$(this).submit();
});
它工作得很好,除了出于某种原因,现在它省略了被单击的按钮的名称。页面上的每个表单都有两个按钮,“保存”和“删除”。单击其中一个按钮提交表单,并发布数据,但不发布提交按钮的数据(它们都有相应的名称)
如果我删除上述代码,然后像往常一样提交表单,我会得到按下的按钮。您可以使用以下代码打印激活按钮的值:
$("form").submit(function() {
console.log($(document.activeElement).val());
}
我建议您参考下面的链接,其中讨论了与提交按钮JQuery相关的所有类型错误的答案
您可以使用以下代码打印激活按钮的值:
$("form").submit(function() {
console.log($(document.activeElement).val());
}
我建议您参考下面的链接,其中讨论了与提交按钮JQuery相关的所有类型错误的答案
这是因为当您通过代码调用
submit()
函数时,您会丢失按钮上的相关点击事件,因此无法将任何按钮数据添加到请求中。是否有方法检测哪个按钮被按下?不是从编程触发的事件,不是。通常您可以触发按钮上的点击事件,然而,这对你来说是行不通的,因为你最终会陷入一个无限循环,你可以通过一个隐藏的输入字段传递必要的数据。。。您需要找出单击了哪个按钮(因此您可能不希望首先处理按钮上的单击事件,而不是表单的提交事件),然后使用适当的值添加/填充隐藏字段,然后让表单提交。这是因为当您调用submit()时
功能通过代码,您会丢失按钮上的相关点击事件,因此无法向请求中添加任何按钮数据。是否有方法检测哪个按钮被按下?不是通过编程触发的事件,不是。通常您可以触发按钮上的点击事件,然而,这对你来说是行不通的,因为你最终会陷入一个无限循环,你可以通过一个隐藏的输入字段传递必要的数据。。。您需要找出单击了哪个按钮(因此您可能不希望首先处理按钮上的单击事件,而不是表单的提交事件),然后使用适当的值添加/填充隐藏字段,然后让表单提交。