Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.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
Javascript jQuery获取表单单击了哪个按钮?_Javascript_Jquery_Html - Fatal编程技术网

Javascript jQuery获取表单单击了哪个按钮?

Javascript jQuery获取表单单击了哪个按钮?,javascript,jquery,html,Javascript,Jquery,Html,我没有获取数据,如何更改var data=$(这个)我将从表单中获取数据 使用closest()而不是find()。find()将仅检查子项。而closest()将检查父项 var data = $(this).find("#formaclient").serialize(); 由于id是唯一的,您可以直接获得这样的表单 var data = $(this).closest("#formaclient").serialize(); 如果您有多个表单,请像这样使用 var data

我没有获取数据,如何更改
var data=$(这个)我将从表单中获取数据

使用
closest()
而不是
find()
。find()将仅检查子项。而
closest()
将检查父项

var data  = $(this).find("#formaclient").serialize();
由于id是唯一的,您可以直接获得这样的表单

 var data  = $(this).closest("#formaclient").serialize(); 
如果您有多个表单,请像这样使用

var data  = $("#formaclient").serialize();
使用
closest()
而不是
find()
。find()将仅检查子项。而
closest()
将检查父项

var data  = $(this).find("#formaclient").serialize();
由于id是唯一的,您可以直接获得这样的表单

 var data  = $(this).closest("#formaclient").serialize(); 
如果您有多个表单,请像这样使用

var data  = $("#formaclient").serialize();

我认为您使用的
.find()
是错误的,因为
.find()
搜索元素子体(子体)


我认为您应该使用
$(“form#formaclient”).serialize()
来序列化数据。

我认为您使用
.find()
是错误的,因为
.find()
搜索元素子体(子体)


我认为您应该使用
$(“form#formaclient”).serialize()
来序列化数据。

您不需要
查找具有特定id值的元素-简单的$(“#formaclient”)就可以了。它还可以避免将表单数据序列化为当前代码尝试序列化的两倍

您的最终结果应该如下所示:

$(“.btn更新”)。单击(功能(ev){
ev.preventDefault();
var myData=$('#formaclient').serialize();
console.log(myData);
$.ajax({
键入:“POST”,
url:'demo/client\u view\u search\u content.php',
数据:myData,
成功:函数(){
警报('Success!')
},
错误:函数(){
警报('Failure!')
}
});
返回false;
});

正如其他人所指出的,尝试
查找
元素只会从您开始的元素(本例中的按钮)中搜索后代元素。

您不需要
查找具有特定id值的
元素-一个简单的$(“#formClient”)就可以了。它还可以避免将表单数据序列化为当前代码尝试序列化的两倍

您的最终结果应该如下所示:

$(“.btn更新”)。单击(功能(ev){
ev.preventDefault();
var myData=$('#formaclient').serialize();
console.log(myData);
$.ajax({
键入:“POST”,
url:'demo/client\u view\u search\u content.php',
数据:myData,
成功:函数(){
警报('Success!')
},
错误:函数(){
警报('Failure!')
}
});
返回false;
});

正如其他人所指出的,尝试
查找
元素只会从您开始的元素(本例中的按钮)中搜索后代元素。

您使用的指向.btn update对象。使用.find()将仅检查对象的子对象。使用以下命令序列化数据:

 var data  = $(this).closest("form").serialize(); 

您正在使用指向.btn update对象的。使用.find()将仅检查对象的子对象。使用以下命令序列化数据:

 var data  = $(this).closest("form").serialize(); 
.find()
从当前元素向下。显然,由于按钮中没有元素,因此无法找到表单

既然您有表单的
id
,为什么不直接使用它来定位表单呢

$('#formaclient').serialize()将完成此操作

另外,请记住,所有ID都必须是唯一的,因此您不必担心混淆表单。

.find()
从当前元素派生。显然,由于按钮中没有元素,因此无法找到表单

既然您有表单的
id
,为什么不直接使用它来定位表单呢

$('#formaclient').serialize()将完成此操作


另外,请记住,所有ID都必须是唯一的,因此您不必担心混淆表单。

您的AJAX调用具有
数据
值的正确格式,那么为什么不在
var data=…
语句中使用相同的调用呢?
.find()
从当前元素派生而来。显然,按钮
$(this)
中没有任何元素。既然您有表单的
id
,为什么不直接使用它来定位表单呢<代码>$('#FormClient')。序列化()将完成此操作。另外,请记住,所有ID都必须是唯一的,因此您不必担心混淆表单:)您的AJAX调用具有
数据
值的正确格式,那么为什么不在
var data=…
语句中使用相同的调用?
。find()
从当前元素派生。显然,按钮
$(this)
中没有任何元素。既然您有表单的
id
,为什么不直接使用它来定位表单呢<代码>$('#FormClient')。序列化()将完成此操作。另外,请记住,所有ID都必须是唯一的,因此您不必担心混淆表单:)