ip输入框键入.或者合法数字自动选择下一个输入框效果
<!DOCTYPE html> <html lang="zh-cn"> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>Bootstrap 101 Template</title> <!-- Bootstrap --> <link href="http://cdn.bootcss.com/bootstrap/3.3.2/css/bootstrap.min.css" rel="stylesheet"> <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries --> <!-- WARNING: Respond.js doesn't work if you view the page via file:// --> <!--[if lt IE 9]> <script src="http://cdn.bootcss.com/html5shiv/3.7.2/html5shiv.min.js"></script> <script src="http://cdn.bootcss.com/respond.js/1.4.2/respond.min.js"></script> <![endif]--> </head> <body> <div class="container"> <form class="form-horizontal" role="form"> <div class="form-group"> <label for="inputEmail3" class="col-sm-2 control-label">Email</label> <div class="col-sm-10"> <input type="text" class="form-control input-sm" name="ip[]" placeholder="Email"> <input type="text" class="form-control input-sm" name="ip[]" placeholder="Email"> <input type="text" class="form-control input-sm" name="ip[]" placeholder="Email"> <input type="text" class="form-control input-sm" name="ip[]" placeholder="Email"> </div> </div> </form> </div> <!-- /container --> <!-- jQuery (necessary for Bootstrap's JavaScript plugins) --> <script src="http://cdn.bootcss.com/jquery/1.11.2/jquery.min.js"></script> <script> $(function(){ var valid_number = function(num) { if ( (num >= 48 && num <= 57) || (num >= 96 && num <= 105) ) { return true; } else { return false; } } var input_number = function(num) { if (num >= 48 && num <= 57) { return num - 48; } else if(num >= 96 && num <= 105) { return num - 96; } } //键盘按下事件 $("[name='ip[]']").keydown(function(e){ console.log(e); var val = $(this).val(); //如果键入不是数字并且不是.并且不是回车并且值不是空 if (!valid_number(e.keyCode) && e.keyCode != 190 && e.keyCode != 110 && e.keyCode != 8) { return false; } // 如果键入退格 if (e.keyCode == 8 && $(this).val() == '') { $(this).prev().focus(); return false; } //如果键入不是退格键,但3个数字 或者(键入.且值不为空) if ((val.length == 3 || (e.keyCode == 190 || e.keyCode == 110) && val != '') && e.keyCode != 8) { $(this).next().focus(); //如果是数字 if (valid_number(e.keyCode)) { $(this).next().val(input_number(e.keyCode)); } return false; } }); //键盘抬起事件 $("[name='ip[]']").keyup(function(e){ var val = $(this).val(); //排除非数字 val=val.replace(/[^\d]/ig,''); $(this).val(val); //判断数字范围 if (val < 0 || val > 255){ $(this).val(''); return false; } }); }); </script> </body> </html>
效果图
输入.或者够3位合格数字,自动把当前键入值赋值给下一个文本框