我写了一小部分代码
<!DOCTYPE html>
<html>
<head>
<script class="jsbin" src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<meta charset=utf-8 />
<title>Test Page</title>
<!--[if IE]>
<script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
<style>
article, aside, figure, footer, header, hgroup,
menu, nav, section { display: block; }
body {
font-family: sans-serif;
}
p {
margin: 0px;
}
</style>
</head>
<body>
<form>
<input type='text'>
</form>
</body>
</html>
JQ
jQuery(function($) {
$('form input[type=text]').change(fileChangeHandler);
function fileChangeHandler() {
var form = $(this).closest('form');
$('<input type="text">').change(fileChangeHandler).appendTo(form);
}
});
它工作得很好但是:我必须在填充一个值后按Enter键(值只有整数) - 是否可以在输入24个数字后自动输入? &LT;然后自动它会进入下一个领域,我会做同样的事情。
我真的不知道该怎么做。给我一些提示。
答案 0 :(得分:0)
jQuery(function ($) {
$('form input[type=text]').keyup(function(){
var form = $(this).closest('form');
if ($(this).val().length == 24)
$('<input type="text">').appendTo(form).focus();
}
});
上面的内容可能有所帮助。
答案 1 :(得分:0)
<强>更新:强>
这是一个有效的JSFiddle:LINK
假设:
<form>
<input type='text'>
</form>
这是你的jQuery:
$('input').keyup(function (){
var intLength = $(this).val().length;
if(intLength === 24){
$('<input type="text" />').appendTo('form');
$("input").last().focus();
}
});
答案 2 :(得分:0)
您可以按照以下方式执行此操作,
$('form input').on("propertychange keyup input paste", addInput);
function addInput() {
var remainingChars = $(this).val().length;
if (remainingChars == 24) {
$('<input type="text">').change(fileChangeHandler).appendTo('form').focus().on("propertychange keyup input paste",addInput);
}}
编辑 - 存储输入值
要在数组中存储字段的值,您可以在创建新字段之前推送每个值。例如,
jQuery(function($) {
var values = [];
$('form input[type=text]').change(fileChangeHandler);
function fileChangeHandler() {
var form = $(this).closest('form');
}
var form = $(this).closest('form');
$('form input').on("propertychange keyup input paste",
addInput);
function addInput() {
var remainingChars = $(this).val().length;
if (remainingChars == 24) {
$('<input type="text">').change(fileChangeHandler).appendTo('form').focus().on("propertychange keyup input paste",addInput);
values.push($(this).val());
//console.log(values);
}}
});
EDIT2 - 仅允许使用数字
....
$('form input').on("propertychange keyup input paste",
addInput);
onlyNums($('form input'));
function addInput() {
var remainingChars = $(this).val().length;
if (remainingChars == 24) {
var newInput = $('<input type="text">').change(fileChangeHandler).appendTo('form').focus().on("propertychange keyup input paste",addInput);
onlyNums(newInput);
values.push($(this).val());
console.log(values);
}}
function onlyNums($elem){
$elem.keydown(function(event) {
// Allow only backspace and delete
if ( event.keyCode == 46 || event.keyCode == 8 ) {
// let it happen, don't do anything
}
else {
// Ensure that it is a number and stop the keypress
if (event.keyCode < 48 || event.keyCode > 57 ) {
event.preventDefault();
}
}
});
}
EDIT3 - 删除输入元素的字段
粗略的方法可能是在span元素中添加输入以及带有x标记的链接以删除特定输入。所以代码稍作修改如下,
<强> HTML 强>
<form>
<span class="input-component"><input type="text"/><a href=#>[x]</a></span>
</form>
<强> JS 强>
jQuery(function($) {
var values = [];
$('form input[type=text]').change(fileChangeHandler);
function fileChangeHandler() {
var form = $(this).closest('form');
}
var form = $(this).closest('form');
$('form .input-component input').on("propertychange keyup input paste",
addInput);
onlyNums($('form .input-component input'));
initializeDelLink($('form .input-component'));
function addInput() {
var remainingChars = $(this).val().length;
if (remainingChars == 24) {
var $newInputComponent = $('<span class="input-component"><input type="text"/><a href=#>[x]</a></span>').change(fileChangeHandler).appendTo('form').find('input').focus().on("propertychange keyup input paste",addInput).end();
initializeDelLink($newInputComponent);
var $newInput = $newInputComponent.find('input');
onlyNums($newInput);
values.push($(this).val());
console.log(values);
}}
function initializeDelLink($elem){
var $delLink=$elem.find('a');
$delLink.click(function(){alert();
$(this).parent('.input-component').remove();
});
}
function onlyNums($elem){
$elem.keydown(function(event) {
// Allow only backspace and delete
if ( event.keyCode == 46 || event.keyCode == 8 ) {
// let it happen, don't do anything
}
else {
// Ensure that it is a number and stop the keypress
if (event.keyCode < 48 || event.keyCode > 57 ) {
event.preventDefault();
}
}
});
}
});