2011-04-14 10 views
2

私は以前の投稿のいくつかを見てきましたが、何が起こっているかとまだ少し混乱しています。私はPO Boxesを許可しない出荷フォームを持っているので、バリデーターを見て、入力フィールドにPOが入っていないことを確認しようとしています。私はすべてのフィールドがこのコードで記入されていることを確認していますが、POボックスの検証にどのように組み込むことができるのだろうかと思っています。 注:これは、より良い方法があるかもしれません、私の実際のフォームJquery PO BOXの有効性確認

$(document).ready(

    function() 
    { 
     $('#shipping').submit(
      function() 
      { 

        var required_fields = new Array(
         'name', 
         'service', 
         'company', 
         'contact', 
         'street', 
         'city', 
         'state', 
         'zip', 
         'projectnum' 
        ); 


         for(j in required_fields) 
         { 

          var theRequiredField = required_fields[j] 
          var inputField = $('[name="' + theRequiredField + '"]') 

          if(inputField.val() == '') 
          {         
           alert("The '" + theRequiredField + "' field is required."); 
           inputField.focus(); 
           return false; 

          } 

         } 


      } // function 
      ) // submit 
    } 

); 

答えて

8

から別々のファイルであるが、ここで私が思い付いたものです:私が使用

Live Demo

$('input[name=address]').each(function() { 
    var pattern = new RegExp('[PO.]*\\s?B(ox)?.*\\d+', 'i'); 
    if ($(this).val().match(pattern)) { 
     $(this).after('<span class="pob">No PO Boxes</span>'); 
    } 
}); 
+0

完璧、助けてくれてありがとう。私は私のものと少しそれを操作しなければなりませんでしたが、コンセプトはそこにあり、それは動作します。どうもありがとうございます! –

+0

@Mike:あなたは賭けました。私はJSFiddleデモでできる限り多くの奇妙なものを取り込もうとしました。うまくいけば、間違いがないと思います。 – drudge

0

上記のRegExはドルージーによって提供されています。それはほとんどの場合に機能しますが、 "1122 new space - Apt。99B1"のような文字列に対して私に誤った肯定を与えました。そこで、RegExを次のように改訂しました。

var pattern = new RegExp('(P.O.|PO|Box)+\\s?.*\\d+', 'i'); 

「P.O.または「PO」または「ボックス」単語の後に番号を付けて、それをPOボックスアドレスとして決定します。

関連する問題