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都必须是唯一的,因此您不必担心混淆表单:)