我有一个maxlength
属性为13的文本框。当用户访问13时,我必须隐藏所有字符并显示星号(*)。
我该怎么做?
答案 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());
}
}
);
}
);
答案 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);
}
});
是的,你需要微调它