gpt4 book ai didi

javascript - JQuery 序列化数据输入为空

转载 作者:行者123 更新时间:2023-11-28 00:46:45 25 4
gpt4 key购买 nike

我有一个包含按钮的表单,单击它时会显示一个模态窗口,其中包含另一个包含输入和 send/cancel 按钮的表单。

我想以这种模式形式序列化数据并通过 AJAX 将其发送到远程服务器。

出于某种原因,当我查看控制台时看不到序列化数据,我只能看到 Email=

有人可以看看我的代码并告诉我哪里出错了吗?这应该有效吗?

HTML

<form id="feedbackForm">
<input class="button" id="bad" src="bad.png" type="image">
</form>

<div aria-hidden="true" class="modal" id="modal" role="dialog" tabindex="-1">
<form id="emailForm">
<div class="form-group">
<input class="form-control" name="Email" type="text">
</div>
<div class="modal-footer">
<button class="btn" type="submit">Send</button>
<button class="btn" data-dismiss="modal" id="closeModal" type="button">Cancel</button>
</div>
</form>
</div>

AJAX

<script>
$(document).ready(function() {
var request;
$("#feedbackForm").on("touchstart, click", function(e) {
e.preventDefault();
var serializedData = $("#emailForm").serialize();
$('#modal').modal('toggle');
$("#emailForm").on("submit", function(e) {
e.preventDefault();
request = $.ajax({
url: "MyURL",
type: "post",
data: serializedData
});
request.done(function(response, textStatus, jqXHR) {
console.log(serializedData); // displays Email=
});
});
});
});
</script>

最佳答案

如果我在用户点击 touchstart 时理解正确

  1. 你序列化表单
  2. 您打开包含表单的模式
  3. 您覆盖提交事件以发送您的 ajax

问题在于,在用用户数据填充变量之前,您的变量已经被赋予了表单的值。 (如果他是第一次打开模态)

只需在正确的时刻从 ajax 提交函数中获取数据,如下所示:

data: getSerializedData()

和函数

function getSerializedData(){
return $("#emailForm").serialize();
}

关于javascript - JQuery 序列化数据输入为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50005822/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com