我想创建一个“NumPad”,我可以在输入字段中键入4位密钥代码。在我点击这四个按钮后,按下提交按钮。我发现了一些代码片段,如果我使用键盘,它会起作用。这是我走了多远:输入字段中的字符数,然后提交
function addNum(num){
document.getElementById('login').value += num;
}
$('#login').keyup(function(){
if(this.value.length == 4){
$('#enter').click();
}
});
#numpad {
width: 200px;
}
.row {
width: 100%;
}
.number {
min-width: 26%;
height: 60px;
float: left;
border: 1px solid;
margin: 10px;
vertical-align: middle;
display: block;
font-size: 2em;
padding-top: 8px;
padding-left: 30px;
-webkit-border-radius: 15px;
-moz-border-radius: 15px;
border-radius: 15px;
}
a:hover .number {
background: black;
color: white;
}
<form action="action.php" method="post" name="loginform" id="loginform">
<input type="password" class="form-control" name="login" id="login">
<input type="submit" id="enter" value="Submit">
</form>
<div id="numpad">
<div class="row">
<a href="#" onClick="addNum('1');"><div class="number">1</div></a>
<a href="#" onClick="addNum('2'); return false"><div class="number">2</div></a>
<a href="#" onClick="addNum('3'); return false"><div class="number">3</div></a>
</div>
<div class="row">
<a href="#" onClick="addNum('4'); return false"><div class="number">4</div></a>
<a href="#" onClick="addNum('5'); return false"><div class="number">5</div></a>
<a href="#" onClick="addNum('6'); return false"><div class="number">6</div></a>
</div><div class="row">
<a href="#" onClick="addNum('7'); return false"><div class="number">7</div></a>
<a href="#" onClick="addNum('8'); return false"><div class="number">8</div></a>
<a href="#" onClick="addNum('9'); return false"><div class="number">9</div></a>
</div>
</div>
你忘了,包括在jQuery的堆栈段。有一个下拉菜单可以选择jQuery。 – Xufox
尝试.change()而不是.keyup()。 – Lewis
另一种方法是连接到“change”事件,如果该值是一个4位数的数字,表单将被提交。 RegEx识别一个4位数字很简单:'^ \ d {4} $' –