gpt4 book ai didi

javascript - 无法在提交时验证表单

转载 作者:行者123 更新时间:2023-12-03 09:57:41 24 4
gpt4 key购买 nike

我正在使用一个名为 liveValidation.js 的小型库。我用它来验证表单中的几个输入。

如果存在一些无效输入,它应该自动禁用表单按钮,但它似乎不起作用。

这是我的 HTML 代码:

<form method="POST" id="contactForm">
<label for="name">Name</label>
<input type="text" name="name" id="contactFormName" value=""/>
<label for="email">E-Mail</label>
<input type="text" name="email" id="contactFormEmail" value=""/>
<label for="message">Your message here</label>
<textarea name="message" id="contactFormMessage"></textarea>
<input type="submit" id="submit" value="submit"/>
</form>

以下是我初始化 liveValidation.js 的方法:

function liveValidation() {
var name = new LiveValidation('contactFormName');
name.add(Validate.Presence);
var email = new LiveValidation('contactFormEmail');
email.add(Validate.Presence);
email.add(Validate.Email);
var message = new LiveValidation('contactFormMessage');
message.add(Validate.Presence);
};
$(document).ready(function ($) {
$("#loadingDiv").hide(400);
liveValidation();
sendEmail();
});

这是 AJAX 请求代码:

function sendEmail() {
var form = $("#contactForm");
var resultDiv = $(".formResult");
$("#submit").click(function () {
$.ajax({
type: "POST",
url: "sendEmail.php",
data: form.serialize()
}).done (function (){
resultDiv.addClass('success').html('Message sent successfully')
}).fail(function () {
resultDiv.addClass('fail').html("Message not sent. Try again")
});
}
});
};

有想过为什么这不能正常工作吗?这是 livevalidation 网站,如果有帮助的话 -> http://livevalidation.com/

最佳答案

您需要手动检查表单是否有效。为此,您需要一个(任何一个)LiveValidation 对象

试试这个

$(document).ready(function ($) {
var obj = liveValidation();
sendEmail(obj);
});

function liveValidation() {
var name = new LiveValidation('contactFormName');
name.add(Validate.Presence);
var email = new LiveValidation('contactFormEmail');
email.add(Validate.Presence);
email.add(Validate.Email);
var message = new LiveValidation('contactFormMessage');
message.add(Validate.Presence);

return name;
};

function sendEmail(obj)
{
var automaticOnSubmit = obj.form.onsubmit;
$("#submit").click(function () {
var valid = automaticOnSubmit();
if(!valid)
{
alert('The form is not valid!');
event.preventDefault();
}
else
{
//submi form
}
});
}

另一种更好的方法是,您可以使用任何 LiveValidation 对象来附加事件

$(document).ready(function ($) {
liveValidation();
sendEmail();
});

function liveValidation() {
var name = new LiveValidation('contactFormName');
name.add(Validate.Presence);
var email = new LiveValidation('contactFormEmail');
email.add(Validate.Presence);
email.add(Validate.Email);
var message = new LiveValidation('contactFormMessage');
message.add(Validate.Presence);

var automaticOnSubmit = name.form.onsubmit;
name.form.onsubmit = function(){
var valid = automaticOnSubmit();
if(valid)
alert('The form is valid!');
else
alert('The form is not valid!');
return false;
}

};

function sendEmail()
{

$("#submit").click(function () {
//submit form here
});
}

关于javascript - 无法在提交时验证表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30684400/

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