我有一些动态创建的内容,其中包含一个小表单(带按钮的下拉列表),可以将某人分配给任务。
使用jquery,我想用新分配的人更新我的数据库。我的方法:
$('#messageDetail').on('click', '#assignButton', function() {
$.ajax({
url: "admin_assginMessage.php",
type: "post",
data: $("#assignForm").serialize(),
success: function (data) {
alert("Success!");
},
error: function() {
alert("Error!");
}
});
});
似乎它没有向我发送表单输入。我觉得我也需要在这里使用.on(),但我不知道我应该选择哪个事件:
data: $("#assignForm").serialize(),
感谢所有答案!
答案 0 :(得分:0)
您应该使用event.preventDefault()
更多信息:event.preventDefault()
<script>
$("#assignForm").submit(function(e) {
e.preventDefault();
$.ajax({
url: "admin_assginMessage.php",
type: "post",
data: $("#assignForm").serialize(),
success: function (data) {
alert("Success!");
},
error: function() {
alert("Error!");
}
});
});
</script>
答案 1 :(得分:0)
Try assigning post data to a variable
`
$('#messageDetail').on('click', '#assignButton', function() {
$.ajax({
url: "admin_assginMessage.php",
type: "post",
data: {'mydata' : $("#assignForm").serialize()},
success: function (data) {
alert("Success!");
},
error: function() {
alert("Error!");
}
});
});
`
答案 2 :(得分:0)
如果您说&#34; 我动态创建了一个表单,但是当我尝试将其序列化时,我无法看到有关动态表单数据的任何信息 &#34;解决方法就在这里:
const dynamicForm = `
<form id="frmData" onsubmit="return false">
<label>Username
<input type='text' name='username' />
</label>
<label>Password
<input type='password' name='password' />
</label>
<button id="clickSend">Click and Send</button>
</form>
`;
$("#addForm").on("click", () => {
$("#frmarea").append(dynamicForm);
})
/* Send Form Details with Dynamic Form */
$(document).on("click", "#clickSend", () => {
let serializeData = $("#frmData").serialize()
console.log(serializeData)
})
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="frmarea"></div>
<button id="addForm">Add Form</button>
&#13;
因此,在使用动态生成的表单时,应使用$(document)
。