我正试图在文本字段中屏蔽密码格式的信用卡号码。
**** **** **** 1234
有没有人知道找到这个的明确,可靠的方法?
答案 0 :(得分:2)
好吧,你可以让前三种输入类型为密码类型,最后一种类型为文本:
function input_onchange(me) {
if (me.value.length < me.getAttribute('maxlength') - 1) {
return;
}
var i;
var elements = me.form.elements;
for (i = 0, numElements = elements.length; i < numElements; i++) {
if (elements[i] == me) {
break;
}
}
elements[i + 1].focus();
}
<form action="post.php" method="post" accept-charset="utf-8">
<input type="password" value="" id="first" size="4" maxlength="4"
onkeypress="input_onchange(this)"/>
<input type="password" value="" id="second" size="4" maxlength="4"
onkeypress="input_onchange(this)"/>
<input type="password" value="" id="third" size="4" maxlength="4"
onkeypress="input_onchange(this)"/>
<input type="text" value="" id="fourth" size="4" maxlength="4"/>
<p><input type="submit" value="Send Credit Card"></p>
</form>
答案 1 :(得分:2)
如果您想将所有数字保存在一个input
中,您可以执行以下操作:
$("#ccNr").keydown(function(e){
if(e.keyCode != 8){
var length = $(this).val().replace(/ /g,"").length;
if(length < 12){
var val = "";
for(var i = 0; i < length + 1; i++){
val+="*";
if((i+1)%4 == 0){
val+=" ";
}
}
$(this).val(val);
}
if(length < 12 || length >= 16){
e.preventDefault();
}
}
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" id="ccNr">
&#13;
这绝对可以改善。我只想说明这个想法。主要是覆盖keydown
事件的默认行为。 e.keyCode != 8
检查确保按下的键不是退格键键。如果你打算使用它,你应该检查一些其他键。此外,您可能希望忽略非数值。