0

現在、一連の入力ボックスをループして、ユーザーが何も入力しない場合に検証を実行しています。それが特定のIDシングルであるかどうかを入力ボックスに指定し、それに対して個別の検証を行うという条件があります。これは、フォームの長さが 10 文字未満であることを確認するだけの単純な検証です。しかし、何らかの理由で機能していません。単一の文字を入力すると、次の反復に進みます。また、ifステートメント内にこれらの複数のifステートメントを含めることを削除できるとにかくありますか。どんな助けでも大歓迎です。

$("form :input").each(function(){ 

var $this = $(this);

if(!this.value.length){

    if(this.id == "phoneNumber" && $this.is(":visible")){
       if($this.val().length < 10){
         alert("phone number required");
       }
    }


} else if($(this).is(":visible")){
  //do some other validation    
}
4

2 に答える 2

2

ネストされたテストが問題です。長さが<10すでにテストされているかどうかをテストしても意味がありません0。値が 1 文字の長さの場合、電話番号として小さすぎるかどうかもチェックしません。

あなたはおそらくこれを望んでいました:

if (this.id == "phoneNumber" && $this.is(":visible") && this.value.length<10){
     alert("phone number required");
} else if(!this.value.length) {
     // alert field empty ?
} else ...
于 2013-05-13T15:58:23.143 に答える
0

jquery には検証プラグインがあります。あなたのためにすべての重い持ち上げを行います。最小長の検証に加えて、番号が有効な米国の電話番号、有効な CC 番号、およびその他の多くのフィールド タイプであるかどうかを確認するための検証があります。 http://docs.jquery.com/Plugins/Validation

于 2013-05-13T16:03:43.560 に答える