2017-12-13 15 views
2

[パスワードを表示する]チェックボックスをクリックすると入力タイプをtextからpasswordに変更しようとしています。チェックボックスをオンにしたときの入力タイプの変更

これは私が書いたものです。それが正しいか?

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input type="password" class="password"/> 
 
<input type="password" class="password"/> 
 
<input type="checkbox" onchange="document.getElementsByClassName('password').type = this.checked ? 'text' : 'password'"> Show password

答えて

3

$(function(){ 
 
    $("#check").on("change", function(){ 
 
     if($(this).prop('checked')){ 
 
      $(".password").attr("type", "text"); 
 
     } else { 
 
      $(".password").attr("type", "password"); 
 
     } 
 
    }) 
 
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input type="password" class="password"/> 
 
<input type="password" class="password"/> 
 
<input type="checkbox" id='check'> Show password

あなただけcheckbにIDを提供する必要があります牛とチェックボックスがチェックされているかどうかはい、それは.passwordクラスのフィールドの入力がそうでなければテキストに作れば、それはあなたがこのように行うことができ、純粋なJavaScriptでパスワード

3

function myFunction() { 
 
    var x = document.getElementById("myInput"); 
 
    if (x.type === "password") { 
 
     x.type = "text"; 
 
    } else { 
 
     x.type = "password"; 
 
    } 
 
}

 

 

 

 
Password: <input type="password" value="FakePSW" id="myInput"><br><br> 
 
<input type="checkbox" onclick="myFunction()">Show Password

+0

あなたの答えは実際に何を説明してください:

function doSomething(isChecked) { var type = isChecked ? 'text' : 'password'; Array.from(document.getElementsByClassName('password')).forEach(element => { element.type = type; }); }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <input type="password" class="password"/> <input type="password" class="password"/> <input type="checkbox" onchange="doSomething(this.checked)"> Show password

Li357

1
<html> 
    <body> 
     <form name="myform"> 
      <input type="text" name="txt" /> 
      <input type="checkbox" name="option" value='1' onchange="changeType()" /> 
     </form> 
     <script> 
      function changeType() 
      { 
       document.myform.txt.type=(document.myform.option.value=(document.myform.option.value==1)?'-1':'1')=='1'?'text':'password'; 
      } 
     </script> 
    </body> 
</html> 
5

となりますため、その後変更イベントに、それがチェックし、 getElementsByClassName('password')はノードのコレクションを提供します。それを反復して、それぞれに変更を適用する必要があります。

forEach()はコレクションに適用できません。Array.from(...)ノードコレクションからアレイを作成するためにここで使用されています。

$("#check").on("change", function(){ 
 
    $(this).is(":checked") ? $(".password").attr("type", "text") : $(".password").attr("type", "password"); 
 
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input type="password" class="password" value="my"/> 
 
<input type="password" class="password" value="password?"/><br><br> 
 
<input type="checkbox" id='check'> Show password

1

一行ソリューション

、あなたは三項演算子を使用することができます。
関連する問題