Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 检测单击了哪个按钮_Jquery_Html_Forms - Fatal编程技术网

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

我有以下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-"+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()时
功能通过代码,您会丢失按钮上的相关点击事件,因此无法向请求中添加任何按钮数据。是否有方法检测哪个按钮被按下?不是通过编程触发的事件,不是。通常您可以触发按钮上的点击事件,然而,这对你来说是行不通的,因为你最终会陷入一个无限循环,你可以通过一个隐藏的输入字段传递必要的数据。。。您需要找出单击了哪个按钮(因此您可能不希望首先处理按钮上的单击事件,而不是表单的提交事件),然后使用适当的值添加/填充隐藏字段,然后让表单提交。