序列化动态创建的表单//发布ajax请求

时间:2017-08-27 03:40:14

标签: jquery ajax

我有一些动态创建的内容,其中包含一个小表单(带按钮的下拉列表),可以将某人分配给任务。

使用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(),

感谢所有答案!

3 个答案:

答案 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;解决方法就在这里:

&#13;
&#13;
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;
&#13;
&#13;

因此,在使用动态生成的表单时,应使用$(document)