我想在提交前验证我的表单。但是,我不明白为什么低于jQuery验证不起作用! Fiddle here。为什么jquery验证不起作用
HTML
<input id="txtName" placeholder="Enter Name" />
<input id="txtEmail" placeholder="Enter Email" /></td>
<input id="txtPhone" placeholder="Enter Phone" /></td>
<input id="txtWebsite" placeholder="Enter Website" /></td>
<textarea id="txtContent" placeholder="Your text here.."></textarea>
<button id="btnSend">SEND</button>
我试图验证电子邮件和URL空输入字段和正则表达式验证。 jQuery的
var txtName = $("#txtName");
var txtEmail = $("#txtEmail");
var txtPhone = $("#txtPhone");
var txtWebsite = $("#txtWebsite");
var txtContent = $("#txtContetnt");
var emailFilter = /^([\w-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([\w-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/;
var urlFilter = /((?:https?\:\/\/|www\.)(?:[-a-z0-9]+\.)*[-a-z0-9]+.*)/;
var phoneFilter = /^\d+$/;
$("#btnSend").click(function (evt) {
if (txtName.val() == "") {
txtName.animate({ backgroundColor: '#630000' }, 200, "easeInQuad");
evt.preventDefault();
}
if (txtEmail.val() == "") {
txtEmail.animate({ backgroundColor: '#630000' }, 200, "easeInQuad");
evt.preventDefault();
}
if (txtContent.val() == "") {
txtEmail.animate({ backgroundColor: '#630000' }, 200, "easeInQuad");
evt.preventDefault();
}
if (!phoneFilter.test(txtPhone.val())) {
txtEmail.animate({ backgroundColor: '#630000' }, 200, "easeInQuad");
evt.preventDefault();
}
if (!urlFilter.test(txtWebsite.val())) {
txtContent.animate({ backgroundColor: '#630000' }, 200, "easeInQuad");
evt.preventDefault();
}
if (!emailFilter.test(txtEmail.val())) {
txtEmail.animate({ backgroundColor: '#630000' }, 200, "easeInQuad");
evt.preventDefault();
}
});
你指的是像'txtName'变量的函数,但我没有看到你已经初始化他们的位置。 – 2014-01-24 05:30:39
你应该删除重复的代码行,把它们放在一个函数或结合你的'if'条件,但不要重复相同的两行代码*六*倍... – meagar
此外您的电子邮件正则表达式已完全中断。考虑'/[email protected]+\..+/'。 – meagar