2016-07-11 10 views
0

私はjavascriptを初めて使用しており、ユーザー情報を取得しようとするとフォームが正しく動作しません。jqueryを使用して入力フィールドの内容を確認してください

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<body> 
 
    <form method="post" action=""> 
 
     <div class="form-row"> 
 
      <label> 
 
       <span>Register</span> 
 
       <select name="register_as" id="dropdown"> 
 
        <option value="none">Select One</option> 
 
        <option value="user">User</option> 
 
        <option value="designer">Designer</option> 
 
       </select> 
 
      </label> 
 
     </div> 
 
     <div> 
 
      <label><span>Gender</span></label> 
 
      <div class="form-radio-buttons"> 
 

 
       <div> 
 
        <label> 
 
         <input type="radio" name="gender" value="male"> 
 
         <span>Male</span> 
 
        </label> 
 
       </div> 
 

 
       <div> 
 
        <label> 
 
         <input type="radio" name="gender" value="female"> 
 
         <span>Female</span> 
 
        </label> 
 
       </div> 
 

 
      </div> 
 
     </div> 
 
     <div> 
 
      <input type="submit"> 
 
     </div> 
 
    </form> 
 
</body> 
 
</html> 
 

 
<script> 
 
    $(document).ready(function() { 
 

 
     $("form").submit(function (e) { 
 

 
      //Check if gender has not been selected 
 
      var gender = $(this).find('input[name="gender"]').val(); 
 
      if(!gender){ 
 
       alert('select a gender'); 
 
      } 
 

 
      //Check if 'register_as' is equal to 'user' or designer 
 
      var register_as = $("#dropdown").val(); 
 
      if(register_as!= 'user' | register_as!= 'designer'){ 
 
       alert('Register as user or designer'); 
 
      } 
 

 
      e.preventDefault(); 
 
     }); 
 
    }); 
 
</script>

ユーザーが登録したいとき、彼はuserdesignerの間で選択しなければなりません。もし彼が選ぶものが違うなら、私たちは彼に警告する。 性別と同じですが、彼はmalefemaleの間で選択する必要があります。

この問題を解決するのに役立ちます。

+0

「正しく動作しません」 - あなたのエラーは何ですか? – Huelfe

答えて

3

ラジオグループの値を取得するには、:checkedを使用する必要があります。そうしないと、最初のラジオグループを取得できません。

var gender = $(this).find('input[name="gender"]:checked').val(); 

ブール演算子のJavascript &&

$(document).ready(function() { 
 

 
     $("form").submit(function (e) { 
 

 
      //Check if gender has not been selected 
 
      var gender = $(this).find('input[name="gender"]:checked').val(); 
 
      if(!gender){ 
 
       alert('select a gender'); 
 
      } 
 

 
      //Check if 'register_as' is equal to 'user' or designer 
 
      var register_as = $("#dropdown").val(); 
 
      if(register_as!= 'user' && register_as!= 'designer'){ 
 
       alert('Register as user or designer'); 
 
      } 
 

 
      e.preventDefault(); 
 
     }); 
 
    }); 
 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
    
 
    <form method="post" action=""> 
 
     <div class="form-row"> 
 
      <label> 
 
       <span>Register</span> 
 
       <select name="register_as" id="dropdown"> 
 
        <option value="none">Select One</option> 
 
        <option value="user">User</option> 
 
        <option value="designer">Designer</option> 
 
       </select> 
 
      </label> 
 
     </div> 
 
     <div> 
 
      <label><span>Gender</span></label> 
 
      <div class="form-radio-buttons"> 
 

 
       <div> 
 
        <label> 
 
         <input type="radio" name="gender" value="male"> 
 
         <span>Male</span> 
 
        </label> 
 
       </div> 
 

 
       <div> 
 
        <label> 
 
         <input type="radio" name="gender" value="female"> 
 
         <span>Female</span> 
 
        </label> 
 
       </div> 
 

 
      </div> 
 
     </div> 
 
     <div> 
 
      <input type="submit"> 
 
     </div> 
 
    </form> 
 
    
 

性別検査に
1

追加さ.filter(':checked')と確認コンボボックスの場合条件に&&|を変更

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<body> 
 
    <form method="post" action=""> 
 
     <div class="form-row"> 
 
      <label> 
 
       <span>Register</span> 
 
       <select name="register_as" id="dropdown"> 
 
        <option value="none">Select One</option> 
 
        <option value="user">User</option> 
 
        <option value="designer">Designer</option> 
 
       </select> 
 
      </label> 
 
     </div> 
 
     <div> 
 
      <label><span>Gender</span></label> 
 
      <div class="form-radio-buttons"> 
 

 
       <div> 
 
        <label> 
 
         <input type="radio" name="gender" value="male"> 
 
         <span>Male</span> 
 
        </label> 
 
       </div> 
 

 
       <div> 
 
        <label> 
 
         <input type="radio" name="gender" value="female"> 
 
         <span>Female</span> 
 
        </label> 
 
       </div> 
 

 
      </div> 
 
     </div> 
 
     <div> 
 
      <input type="submit"> 
 
     </div> 
 
    </form> 
 
</body> 
 
</html> 
 

 
<script> 
 
    $(document).ready(function() { 
 

 
     $("form").submit(function (e) { 
 

 
      //Check if gender has not been selected 
 
      var gender = $(this).find('input[name="gender"]').filter(':checked').val(); 
 
      if(!gender){ 
 
       alert('select a gender'); 
 
      } 
 

 
      //Check if 'register_as' is equal to 'user' or designer 
 
      var register_as = $("#dropdown").val(); 
 
      if(register_as!= 'user' && register_as!= 'designer'){ 
 
       alert('Register as user or designer'); 
 
      } 
 

 
      e.preventDefault(); 
 
     }); 
 
    }); 
 
</script>