我使用jQuery来限制输入<input>
字段的数字位数,然后跳转到下一个字段。以下是代码:
HTML:
<input class=time ...><input class=time...><input class=time ...>
JS:
$('.time').on('keyup', function(event) {
var data = $(this).val();
data = data.replace(/\D/g,''); // Delete all non-digits
len = data.length;
if (len==3) {
data = data.slice(0,2) + ':' + data[2]; // Add a ':'
} else if (len>=4) {
data = data.slice(0,2) + ':' + data.slice(2,4);
$(this).next('.time').focus();
}
$(this).val(data);
});
以上将有效。但是,如果我将输入字段添加到表中,$(this).next('.time').focus();
语句将不起作用:
<table>
<tr>
<td><input class=time ...></td>
<td><input class=time ...></td>
<td><input class=time ...></td>
</tr>
</table>
我还发现,如果<input>
标记后跟<br>
,则focus()
语句也会失败:
<input class=time ...><br>
<input class=time ...><br>
<input class=time ...><br>
我该如何解决?
答案 0 :(得分:8)
$(this).parent().next().find('.time').focus();