我從jQuery開始,嘗試在表單驗證中保存大量代碼。我想把所有的表單字段放在一個數組中,使用each()來遍歷數組來查看這些字段是否爲空並返回錯誤(如果有必要)。通過數組驗證表單驗證字段
一個問題;我的方法是行不通的..
我用下面的方法
var fields = [ "$('#name')", "$('address')" ];
jQuery.each(fields,function(){
if(this.val() == ""){
alert(this.id+" is empty");
return false;
}
});
我當然可以分別檢查各個領域,但因爲我有很多的形式,這將是一個相當大的代碼。
我的想法甚至可能,如果他們是,如何?
好了,上述問題是完全解決了,但是我現在有一個新的
一旦我檢查所有的,如果他們是空的,我要檢查,如果輸入一個有效的電子郵件領域。我使用下面的代碼:
$("#reservationForm").live("submit", function(f){
$(".formError").hide();
if(!$('#agree').is(':checked')){
$("#agree").after('You need to agree with the terms on the right');
f.preventDefault();
}else{
$("#reservationForm").find("input[type=email], input[type=tel], input[type=text]").filter(function(){
if($(this).val() == ""){
$(this).css("border","solid 1px red").after('Please fill in your '+this.id+'');
$(this).find("first-child").focus();
f.preventDefault();
}else if(!/\b[A-Z0-9._%+-][email protected](?:[A-Z0-9-]+\.)+[A-Z]{2,4}\b/.test($("#mail").val())){
$("#mail").css("border","solid 1px red").after('Please enter a valid email address');
}
});
}
});
的問題是,邊框沒有變成紅色,並且不顯示應顯示電子郵件字段之後的消息。只有電子郵件字段是重點,沒有別的。
噢,我實際上還有另一個'問題',因爲第一個孩子選擇器似乎並不工作。代替第一個元素,最後一個元素被聚焦。 (我也試過最後一個孩子,但那並沒有訣竅。)
這很容易!謝謝! – Maurice 2010-09-17 10:48:26