2016-08-19 8 views
-1

フォームのサブミットのために、フィールドペアのうちの少なくとも1ペアがs_AAA/s_BBBである関数を作成しようとしています。ユーザーが5 s_AAA/s_BBBのコンボまで提出する権利があります。これは、最大5人の友人を参照することができるフォームと考えてください。ただし、少なくともフォームを提出するには1を提出する必要があります。フィールドの最初のペアを作成する方法と必要なものはありません

ご協力いただきましてありがとうございます。

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script> 
    <script src="http://ajax.aspnetcdn.com/ajax/jquery.validate/1.9/jquery.validate.min.js"></script> 
    <script type="text/javascript">  
    (function ($, W, D) { 
     var SIGNUPVALIDATION = {}; 

     SIGNUPVALIDATION.UTIL = { 
      setupFormValidation: function() { 
       //form validation rules 
       $("#friend_req").validate({ 
        rules: { 
         s_referee_email: "required", 
         s_referee_fname: "required", 

        }, 
        messages: { 
         s_referee_email: "Please enter at least one friend's email address", 
         s_referee_fname: "Please enter your friends first name", 
        }, 
        submitHandler: function (form) { 
         form.submit(); 
        } 
       }); 
      } 
     } 
     //when the DOM has loaded setup form validation rules 
     $(D).ready(function ($) { 
      SIGNUPVALIDATION.UTIL.setupFormValidation(); 
     }); 

    })(jQuery, window, document); 
    </script> 
+0

使用している検証ライブラリのタグを追加するか、質問を更新してください。 –

+0

アドバイスMikeのおかげで、追加されました! – badsmell

答えて

0

あなたが特にJavaScriptでそれを行うために探している場合を除き、あなただけのHTML5フォームにrequiredを追加することができます。たとえば:

<input type="text" name="usrname" required> 

問題はその後のSafariになります - 必要なフィールドがBLANK-残っているだけでなく、ユーザーにエラーが表示されません場合は、フォームを提出しないであろう。あなたのユーザーは、フォームが提出しない理由を知らずにそこに座るでしょう。あなたはそれをするためにいくつかのJSを使用することができます。なぜあなたはJSでそれをやるのではなく、HTMLの検証をスキップするのはなぜだろうか?まあ、それは個人的な決定だと思うけど、HTML検証が他のブラウザであなたに与える小さなポップオーバーが好きなので、コンボのアプローチを使いたい。

あなたはあなたがそうのように検証する入力をつかむ関数を作成しようとしているJSでそれをやろうとしている場合:

nameInput = document.querySelector("#name").value 

そしてまでの長さがある場合はそこからあなたがチェックすることができます入力は、あなたはそれが文字の特定の最小を満たしているか、あなたはそれのようなもので.test()を使用して値があるかどうかを確認することができることを確認したい場合:それがない場合はそこから

/^[a-zA-Z]+/.test(nameInput) 

を、あなたはに進んで送信し、そうでない場合は、私たちにエラーを発行しますer:

*assuming you have a div with a class of "error", if not you could create one dynamically 

else { 
    error.innerHTML = "You must provide a name."; 
} 
+0

ありがとうMoly。 HTML5ソリューションを使用するとすばらしい優雅な解決策です!ありがとうございました!アヤックスを走らせないように... – badsmell

+0

あなたの歓迎!これで問題が解決したら解決策としてマークすることを検討してください;) – HolyMoly

+1

Thakns HolyMoly。 – badsmell

関連する問題