我在提交事件中调用了一个表单的serialize,这样我就可以获得表单输入,然后阻止提交。我检查了所有的输入都有name值,并且在提交之前没有被禁用,但是.serialize仍然返回空字符串。任何帮助将不胜感激,谢谢!
我的代码的HTML在这里
div(class='waitlist' id='waitlist')
h1(id='waitlisttext') Add me to the waitlist
form(action="" id='waitlistform')
// target="_blank" method="POST" action="../waitlistdata.php"//
label(for="fname") First name:
br
input(type="text", id="fname", name="fname", value="" required)
br
label(for="lname") Last name:
br
input(type="text", id="lname", name="lname", value="" required)
br
label(for="email") Email:
br
input(type="text" id="email" name="email" value="" required)
br
br
input(type="submit" name="submit" value="Submit")
字符串
我的submit函数的JS在这里,在调用serialize之前检查输入是否被禁用,并返回序列化的字符串。
$("#waitlist").on("submit", function(e) {
console.log('submit function called')
console.log(document.getElementById('fname').disabled)
var dataString = $(this).serialize();
alert(dataString); return false;
$.ajax({
type: "POST",
url: "../views/waitlistdata.php",
data: dataString,
success: function () {
$("#waitlisttext").html("<div id='message'></div>");
$("#message")
.html("<h2>Contact Form Submitted!</h2>")
.append("<p>We will be in touch soon.</p>")
.hide()
.fadeIn(1500, function () {
$("#message").append(
"<img id='checkmark' src='images/check.png' />"
);
});
}
});
e.preventDefault();
return false;
});
型
1条答案
按热度按时间3npbholx1#
暂且不谈这不是HTML,假设它是其他一些语言,它会产生逻辑上类似的HTML……
您不是在序列化
<form>
,而是在序列化<div>
。此事件处理程序:字符串
绑定到此元素:
型
所以这是在尝试序列化那个元素:
型
也许你的意思是将事件绑定到
<form>
:型
或者,如果您仍然希望将事件处理程序绑定到
<div>
,则必须选择<form>
来序列化它:型