好吧,所以我几个小时都没有运气,坐立不安。
我在页面上有多个表单(总共6个),每个表单都有这种结构
表单1
<form method="post" action="" id="Television_form">
.
.
.
<button class="btn btn-sm btn-success" id="Television" name="save"> Save</button
</form>
表单2
<form method="post" action="" id="Video_form">
.
.
.
<button class="btn btn-sm btn-success" id="Video" name="save"> Save</button
</form>
当有人点击“保存”时,我正在尝试获取表单数据。 这是它的jquery代码: -
$("[name='save']").click(function(e){
e.preventDefault();
// alert("was");
id = $(this).attr('id');
//send the current form via ajax now
form_name = "#"+id+"_form";
data = $(form_name).serialize();
alert(form_name);
alert(data);
})
问题是,我为alert(form_name)
得到正确值,并在点击第一张表单的保存时更正了alert(data)
的数据
如果我点击第二个表单的保存,我会获得alert(form_name)
的正确数据,但data
的空白。为什么jquery没有获取数据?
一些帮助会很好,我真的在敲我的头。
编辑: -
//这是真实的一行: -
<form action="" method="post" id="<?php echo $expereince_details->header_name; ?>_form">
答案 0 :(得分:3)
您的表单代码未正确关闭,但ID上缺少"
。
<form method="post" action="" id="Video_form">
此外,您可能需要考虑将事件附加到表单而不是按钮,这样可以更轻松地进行开发。
以下方式不再依赖于ID。
$("form").on('submit', function(e)
{
e.preventDefault();
let data = $(this).serialize();
console.log(data);
return false;
})
答案 1 :(得分:0)
Ian回答完美,但您还需要在按钮中添加提交类型
<button class="btn btn-sm btn-success" type="submit" id="Television" name="save"> Save</button>