我使用以下代码提交带有ajax / php的表单。
<form method="post" action="">
<input name="saqhiddenid" class="saqhiddenid" type="hidden" value="' . $pci_saq_id . '" />
<button type="button" name="editsaq" class="editsaq">Edit</button>
</form>
$(function () {
$(".editsaq").click(function(){
$.ajax({
url: 'someurl',
type: "POST",
data: {
saqhiddenid: $('input[name="saqhiddenid"]').val()
},
dataType: "JSON",
success: function (data) {
some code
}
});
});
});
提交按预期工作。 我可以在HTML代码中看到“saqhiddenid”的值不同,但是当我提交表单时,我总是从最高值得到结果。
有什么想法吗?
答案 0 :(得分:1)
那是因为你没有禁用实际的表单提交。所以你进行了ajax调用,但表单也会以旧值提交。你需要:
$(".editsaq").click(function(e){
e.preventDefault();
var form = $(this).closest('form');
var value = form.find('input[name="saqhiddenid"]').val();
$.ajax({
url: 'someurl',
type: "POST",
data: {
saqhiddenid: value
},
dataType: "JSON",
success: function (data) {
some code
}
};
答案 1 :(得分:1)
如果多个表单具有相同的输入名称,它将始终选择第一个输入值。
如果您的form
结构与发布的相同,请尝试以下代码:
data: {
saqhiddenid: $(this).prev().val()
}