2012-03-05 4 views
0

私はフォームに4つの電子メールフィールドを持っています。jqueryでフィールドの最小長を設定するにはどうすればよいですか?

これはhtmlです:

<form id="new_invitation" class="new_invitation" method="post" data-remote="true" action="/invitations" accept-charset="UTF-8"> 
<div id="invitation_form_recipients"> 
<input type="text" value="" name="invitation[recipients][]" id="invitation_recipients_0"><br> 
<input type="text" value="" name="invitation[recipients][]" id="invitation_recipients_1"><br> 
<input type="text" value="" name="invitation[recipients][]" id="invitation_recipients_2"><br> 
<input type="text" value="" name="invitation[recipients][]" id="invitation_recipients_3"><br> 
</div> 
<input type="submit" value="Send invitation" name="commit"> 
</form> 

私はそれをどのように行うことができますか?

答えて

3
$('#new_invitation').submit(function(event) { 
    if ($('#invitation_form_recipients input').filter(function() { 
     return $(this).val(); 
    }).length == 0) { 
     // all the fields are empty 
     // show error message here 

     // this blocks the form from submitting 
     event.preventDefault(); 
    } 


}); 
+0

を私は、この意志だと思います文字列 "0"を空の入力と見なして、フィルター条件をより明確にしたい場合があります。 – jbabey

+0

文字列 '0'は大丈夫です( '!! 0 == false'だから' !! '0' == true')が、確かにフィルターの戻り値の前に '!!' – ori

+0

ありがとう、私は入力された電子メールが正規表現の電子メールかどうかを知る必要があります。これは私にとってはうまくいかない:( – hyperrjas

1

片道:4つの値を連結し、それが空白ではない場合、あなたはそれらのいずれかが記入されていることを確認している

0

これは動作するはずです:。

<script type="text/javascript"> 
     function check_recipients(form){ 
      var empty = true; 
      $('#invitation_form_recipients input').each(function(){ 
       if($(this).val() != ''){ empty = false; } 
      }); 
      if(empty){ 
       alert('You have to fill in at least one recipient!'); 
       return false; 
      }else{ 
       form.submit(); 
      } 
     } 
    </script> 

<form id="new_invitation" class="new_invitation" onsubmit="check_recipients(this); return false;" method="post" data-remote="true" action="/invitations" accept-charset="UTF-8"> 
     <div id="invitation_form_recipients"> 
      <input type="text" value="" name="invitation[recipients][]" id="invitation_recipients_0"><br> 
      <input type="text" value="" name="invitation[recipients][]" id="invitation_recipients_1"><br> 
      <input type="text" value="" name="invitation[recipients][]" id="invitation_recipients_2"><br> 
      <input type="text" value="" name="invitation[recipients][]" id="invitation_recipients_3"><br> 
     </div> 
     <input type="submit" value="Send invitation" name="commit"> 
    </form> 
関連する問題