Фокус курсора не приходит в поле пароля. - PullRequest
0 голосов
/ 30 июля 2011

Я использую приведенный ниже код для замены поля ввода текста на область пароля в фокусе.

<input type="text" name="password" id="password" onblur="ChangeToTextField(); if (this.value == '') {this.value = 'password';}" onfocus="ChangeToPassField(); if (this.value == 'password') { this.value = '';}else { this.value; }" value="password" style="width:230px; height:25px; margin-left:5px; background:none; border:0px;" />


<script type="text/javascript">
    function ChangeToPassField() {
    document.getElementById('password').type="password";
    var input = document.getElementById('password');
    input.focus();
  }
  function ChangeToTextField() {
   if(document.getElementById('password').value=="" || document.getElementById('password').value == "password" )
       {
   //alert("hai");
   document.getElementById('password').type="text";
    document.getElementById('password').value="password";
       }
  }
</script>

Если я щелкаю в поле пароля, курсор не мигает в поле пароля.Как отобразить указатель курсора в поле пароля? ...

Ответы [ 2 ]

0 голосов
/ 30 июля 2011
<input type="text" name="password" id="password" value="password" style="width:230px; height:25px; margin-left:5px; background:none; border:0px;" />

<script>
var passwordF = document.getElementById("password");

passwordF.onblur = function() {
   ChangeToTextField();
   if (this.value === '') {
      this.value = '';
   }
};

passwordF.onfocus = function() {
   ChangeToPassField();
   if (this.value === 'password') {
      this.value = '';
   }
};

function ChangeToPassField() {
   console.log("changed to pass field...");
   document.getElementById('password').type="password";
   var input = document.getElementById('password');
   input.focus();
}

function ChangeToTextField() {
   console.log("changed to text field...");
   if(document.getElementById('password').value=="" ||    
      document.getElementById('password').value == "password" )
   {
      //alert("hai");
      document.getElementById('password').type="text";
      document.getElementById('password').value="password";
   }
} 
</script>
0 голосов
/ 30 июля 2011

А как насчет использования атрибута HTML 5 placeholder?(имейте в виду, что это не будет работать везде)

<!DOCTYPE html>
<!-- ... -->
<form>
    <input placeholder="Password" type="password" name="password" id="password" />
    <input type="submit" />
</form>

jsfiddle: http://jsfiddle.net/ndduP/


В противном случае, здесь попытка того, что вы пытаетесь сделать (сохранить впомните, что у некоторых людей может быть отключен JavaScript, что делает это проблематичным с точки зрения безопасности / конфиденциальности)

<form>
    <input type="text" name="password" id="password_field" value="Password" onfocus="make_pass();" onblur="make_text();" />
    <input type="submit" />
</form>

<script>
function make_text() {
    var field = document.getElementById('password_field');
    if (field.value.replace(/ /g,'') === "") {
        field.type  = "text";
        field.value = "Password";
    }
}

function make_pass() {
    var field = document.getElementById('password_field');
    if (field.type === "text") {
        field.value = "";
        field.type  = "password";
    }
}
</script>

jsfiddle: http://jsfiddle.net/utEVx/

...