我有三个用于在网页上输入电话号码的输入框:
XXX XXX XXXX
我需要在您键入时在框之间移动用户的 JavaScript。在第三个字符之后,它会将您移动到第二个框,等等...
过去,我在退格方面遇到了麻烦。当我从第二个框中单击退格键时,它使我进入第一个,但随后又将我射回第二个。
做这个的最好方式是什么?
我有三个用于在网页上输入电话号码的输入框:
XXX XXX XXXX
我需要在您键入时在框之间移动用户的 JavaScript。在第三个字符之后,它会将您移动到第二个框,等等...
过去,我在退格方面遇到了麻烦。当我从第二个框中单击退格键时,它使我进入第一个,但随后又将我射回第二个。
做这个的最好方式是什么?
你应该使用jQuery AutoTab
像这样的示例代码
<div><strong>Phone Number:</strong></div>
<input type="text" name="area_code" id="area_code" maxlength="3" size="3" /> -
<input type="text" name="number1" id="number1" maxlength="3" size="3" /> -
<input type="text" name="number2" id="number2" maxlength="4" size="5" />
<script type="text/javascript">
$(document).ready(function() {
$('#area_code').autotab({ target: 'number1', format: 'numeric' });
$('#number1').autotab({ target: 'number2', format: 'numeric', previous: 'area_code' });
$('#number2').autotab({ previous: 'number1', format: 'numeric' });
});
</script>
就个人而言,我几乎接受任何东西并担心在服务器端重新格式化它。我不得不使用这么多糟糕的 javascript 电话格式化程序,所以我不是一个大粉丝。
我建议使用这个一盒解决方案而不是三个。它减轻了许多令人头疼的问题和在盒子之间弹跳的边缘情况,让第一个盒子做 a .select()
,然后用户点击删除,并擦除他们的条目。好恶心。
http://javascript.internet.com/forms/format-phone-number.html
您可能想要的所有自动格式化。当然,这是北美标准,您必须针对 RestOfTheWorld 进行修改。
当第一个字段具有焦点时,我会使用一个键侦听器来检查输入,计算已经输入的字符数,如果输入了足够多的字符,则将焦点移到第二个字段,依此类推。
希望这可以帮助,
尤瓦尔=8-)