2011-08-04 2 views
0

Imは、フォームの検証が、イムだけで、姓と名のフィールドuは助けることができる唯一の文字入力

の希望のために手紙を受け入れるようにそれを得るのに苦労するためのフォームを検証

HERESに私のコード:

$(document).ready(function(){ 
// Place ID's of all required fields here. 
required = ["firstname", "lastname", "email"]; 
// If using an ID other than #email or #error then replace it here 
email = $("#email"); 
errornotice = $("#error"); 
// The text to show up within a field when it is incorrect 
emptyerror = "Please fill out this field."; 
emailerror = "Please enter a valid e-mail."; 
onlyletters = "Only letters allowed."; 

$("#theform").submit(function(){  
    //Validate required fields 
    for (i=0;i<required.length;i++) { 
     var input = $('#'+required[i]); 
     if ((input.val() == "") || (input.val() == emptyerror)) { 
      input.addClass("needsfilled"); 
      input.val(emptyerror); 
      errornotice.fadeIn(750); 
     } else { 
      input.removeClass("needsfilled"); 
     } 
    } 


     // Only Letters. 
    if (!/^([a-zA-Z])+$/.test(errornotice.val())) { 
     errornotice.addClass("needsfilled"); 
     errornotice.val(onlyletters); 
    } 


    // Validate the e-mail. 
    if (!/^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/.test(email.val())) { 
     email.addClass("needsfilled"); 
     email.val(emailerror); 
    } 

    //if any inputs on the page have the class 'needsfilled' the form will not submit 
    if ($(":input").hasClass("needsfilled")) { 
     return false; 
    } else { 
     errornotice.hide(); 
     return true; 
    } 
}); 

// Clears any fields in the form when the user clicks on them 
$(":input").focus(function(){  
    if ($(this).hasClass("needsfilled")) { 
     $(this).val(""); 
     $(this).removeClass("needsfilled"); 
    } 
}); 
}); 
+2

のみの文字を含む有効な名前の多くを排除するために起こっていますか?本当にオライリー氏がサインアップできないようにする必要があります。あなたの正規表現はそれを文字a-zにも限定しているので、Piére自身も運が悪くなります。 – Quentin

+1

その電子メールの正規表現では「いいえ」と表示されます。あまりにも完璧な良いメールアドレスの多くに。 – Quentin

+0

RFC822電子メールの正規表現をキューに入れるhttp://ex-parrot.com/~pdw/Mail-RFC822-Address.html – Jamiec

答えて

1

この回線をerrornotice.val()またはfirstname.val()に対してテストしますか。

if (!/^([a-zA-Z])+$/.test(errornotice.val())) { 

// Maybe this is what you intended. 
// This requires adding some more variables earlier when you set email and errornotice 
email = $("#email"); 
errornotice = $("#error"); 
// Add vars for first/lastname 
firstname = $("#firstname"); 
lastname = $("#lastname"); 

if (!/^([a-zA-Z])+$/.test(firstname.val())) { 
    firstname.addClass("needsfilled"); 
    firstname.val(onlyletters); 
} 
// then do the same for lastname 
if (!/^([a-zA-Z])+$/.test(lastname.val())) { 
    lastname.addClass("needsfilled"); 
    lastname.val(onlyletters); 
} 

はしかし、文字だけのあなたの正規表現は、アポストロフィ、発音区別符号、ウムラウトなど

+0

これに少し新しくなりましたので、どんな助けもありがたいです – Gezzamondo

+0

@ user874658本当にしたいのですか?まったく名前を限定する。私は "マイケル・オライリー・ジョーンズ・スミス・ザ・1st"かもしれません。私は個人的に名前に制限をつけません。 –

+0

私は心配していますが、フォームを検証しないとPHPが – Gezzamondo

関連する問題