我想在提交前驗證我的表單。但是,我不明白爲什麼低於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