当文本框达到最大长度时,如何显示星号而不是字符?

时间:2012-02-03 10:36:40

标签: javascript jquery

我有一个maxlength属性为13的文本框。当用户访问13时,我必须隐藏所有字符并显示星号(*)。

我该怎么做?

4 个答案:

答案 0 :(得分:1)

您可以使用keypress()函数。每次用户键入一个字符时,都会检查字符串的长度。然后,如果长度超过13个字符,则可以触发另一个函数

答案 1 :(得分:0)

我宁愿使用keyup()而不是keypress(),因为它会返回输入的当前长度。按键将是“一步之后”

$('input').keyup(function(){
    if( $this).val().length > 13 )
        $(this).val('*');
});

答案 2 :(得分:0)

见:

<强> HTML:

Input: <input type="text" maxlength="13" id="myInput"/>

<input type="password" maxlength="13" id="myInputHide" class="hidden">

<强> jQuery的:

$(document).ready(
    function() {
       $(".hidden").hide();                        //Hide the asterik field initially
       $("#myInput").keyup(                        //Handle the keyup on the input field
           function() {
               if($(this).val().length == $(this).attr("maxlength")) {
                   $(this).hide();
                   $("#" + this.id + "Hide").show().val($(this).val());
               }
           }
       );

        $("#myInputHide").keyup(                        //Handle the keyup on the asterik field
           function() {
               if($(this).val().length != $(this).attr("maxlength")) {
                   $(this).hide();
                   $("#" + this.id.replace(/Hide$/,"")).show().val($(this).val());
               }
           }
       );

    }

);

jsfiddle

答案 3 :(得分:0)

这样的事情:


var count = 0;
var maxLength = 4; //or you can gte your maxlength attributes value
$("#yourInputId").keyup(function() {
   count++;
   if(count > maxLength) {
      var changVal = $(this).val();
      var newVal = "";
     for(var i = 0; i < maxLength; i++) {
         newVal += changVal.charAt(i).replace(changVal.charAt(i), "*");
     }
     $(this).val(newVal); 
   }
});

是的,你需要微调它