Javascript JQuery序列化数据输入为空
我有一个包含按钮的表单,当单击它时,它会显示一个模式窗口,另一个表单包含一个输入和一个Javascript JQuery序列化数据输入为空,javascript,jquery,ajax,html,forms,Javascript,Jquery,Ajax,Html,Forms,我有一个包含按钮的表单,当单击它时,它会显示一个模式窗口,另一个表单包含一个输入和一个/取消按钮 我希望以这种模式形式序列化数据,并通过AJAX将其发送到远程服务器 由于某些原因,当我查看控制台时,我看不到序列化数据,只能看到Email= 有人能看看我的代码,告诉我哪里出错了吗?这样行吗 HTML <form id="feedbackForm"> <input class="button" id="bad" src="bad.png" type="image">
/取消按钮
我希望以这种模式形式序列化数据,并通过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>
$(文档).ready(函数(){
var请求;
$(“#反馈形式”)。在(“触摸启动,单击”,功能(e){
e、 预防默认值();
var serializedData=$(“#emailForm”).serialize();
$('#model')。model('toggle');
$(“#emailForm”)。关于(“提交”,功能(e){
e、 预防默认值();
请求=$.ajax({
url:“我的url”,
类型:“post”,
数据:序列化数据
});
完成(函数(响应、文本状态、jqXHR){
console.log(serializedData);//显示电子邮件=
});
});
});
});
如果用户单击touchstart时我理解正确
您可以序列化表单
打开包含表单的模态
覆盖提交事件以发送ajax
问题是,在用用户数据填充变量之前,它已经被赋予了表单的值。(如果他是第一次打开modal)
只需在正确的时间从ajax submit函数获取数据,如下所示:
data: getSerializedData()
以及功能
function getSerializedData(){
return $("#emailForm").serialize();
}
每次点击#feedbackForm
时,您是否真的绑定了提交
事件?我尝试使用您的代码,但仍然打印行事件中的数据。preventDefault()应该会导致错误。(因为事件在函数中作为“e”传递)。这不会导致你的案子出错吗?我甚至不知道那是什么意思。我不是专家,这就是我来这里的原因。我试着自学,任何帮助都很感激:)谢谢@AnastasiosSelmanis,但没有产生任何错误。如果有什么不同的话,就使用Chrome。不过,我现在就要做出改变,谢谢你非常感谢你的解释@Anastasios Selmanis,它非常有效:)