我现在忙于13个输入字段,结果会合并到变量中,我必须将其拆分为13,因为我需要添加块效果,例如您将在现实世界中的许多表单中找到它。每个块的限制是一个,我需要找到,这样当你插入一个数字时,它会进入下一个字段,直到所有字段都已填满,然后验证功能将启动。
继承人html:
<div id="error"></div>
<form id="idCheck">
<input class="id" id="idnumber1" maxlength="1" />
<input class="id" id="idnumber2" maxlength="1" />
<input class="id" id="idnumber3" maxlength="1" />
<input class="id" id="idnumber4" maxlength="1" />
<input class="id" id="idnumber5" maxlength="1" />
<input class="id" id="idnumber6" maxlength="1" />
<input class="id" id="idnumber7" maxlength="1" />
<input class="id" id="idnumber8" maxlength="1" />
<input class="id" id="idnumber9" maxlength="1" />
<input class="id" id="idnumber10" maxlength="1" />
<input class="id" id="idnumber11" maxlength="1" />
<input class="id" id="idnumber12" maxlength="1" />
<input class="id" id="idnumber13" maxlength="1" /><span id="status"></span>
<p> <input type="submit" id="check" value="Check" /> </p>
</form>
<div id="result"> </div>
并且继承了javascript:
function Validate() {
jQuery('#error p').remove();
var error = jQuery('#error');
var p1 = jQuery('#idnumber1').val();
var p2 = jQuery('#idnumber2').val();
var p3 = jQuery('#idnumber3').val();
var p4 = jQuery('#idnumber4').val();
var p5 = jQuery('#idnumber5').val();
var p6 = jQuery('#idnumber6').val();
var p7 = jQuery('#idnumber7').val();
var p8 = jQuery('#idnumber8').val();
var p9 = jQuery('#idnumber9').val();
var p10 = jQuery('#idnumber10').val();
var p11 = jQuery('#idnumber11').val();
var p12 = jQuery('#idnumber12').val();
var p13 = jQuery('#idnumber13').val();
var idNumber = p1 + p2 + p3 + p4 + p5 + p6 +p7 + p8 + p9 + p10 + p11 + p12 + p13;
};
任何帮助都非常感激。
答案 0 :(得分:5)
您可以使用keyup
和next
方法:
$('input.id').on('keyup', function(){
if (this.value.match(/\d+/)) {
var $this = $(this);
if ($this.next('input').length) {
$this.next().focus();
} else {
Validate()
}
}
})
function Validate() {
jQuery('#error p').remove();
var error = jQuery('#error');
var idNumber = $('input.id').map(function(){
return this.value
}).get().join('');
}
答案 1 :(得分:1)
$('#myInput').focus(function(){
$(this).next('input').focus();
})
或
$("input").change(function() {
var inputs = $(this).closest('form').find(':input');
inputs.eq( inputs.index(this)+ 1 ).focus();
});
两者均来自here。
答案 2 :(得分:1)