我对我的代码存在一个小问题。但问题要解决,我不能单独做,因为我不知道它是否出错。
我试图制作一个包含2个文本框的表单,当1个文本框已满(当文本框中没有活动5秒)时,我希望它跳到第二个文本框。同样的交易在这里,但在没有活动的5秒后,我想形成提交。
这就是我到目前为止所拥有的,我认为我得到的所有拼图只是没有任何指示将它组合在一起。
这是我到目前为止所得到的:
function checkfields()
{
var inhoudLocatieNummer = document.formsubmit.locatienummer.value;
var inhoudbonnummer = document.formsubmit.bonnummer.value;
document.formsubmit.locatienummer.focus();
//delay(checkfields, contains, 500 );
if (contains(inhoudbonnummer, "U") == true){
exceptionMessage("Uitbesteed werk!");
}
else{
<!--geen uitbesteed werk dus kan op de normale manier verzondern worden-->
exceptionMessage("Normale bon!");
}
}
var delayrec = {};
function delay(callback, id, calldelay) {
clearTimeout(delayrec[id]);
delayrec[id] = setTimeout(callback, calldelay);
}
function contains(variable, value) {
if (variable.indexOf(value) >= 0)
{
return true;
}
}
function exceptionMessage(errormessage) {
alert(errormessage);
}
有人可以帮助我或指出我正确的方向。
我遇到的问题是文本框不等待不活动,所以一旦触发了keyup事件就会跳过。
答案 0 :(得分:2)
试试这个:
var timeoutObj;
$( ":input" ).keyup(function( event ) {
var _this = $(this);
if(_this.val().length === parseInt($(this).attr("maxlength"))){
timeoutObj = setTimeout(
function(){
_this.next('input').focus();
}, 5000);
}else{
clearTimeout(timeoutObj);
}
}).keydown(function( event ) {
//Prevent Entrer key
if ( event.which === 13 ) {
event.preventDefault();
}
});
<form action="#" method="post">
<input name="input1" id="input1" placeholder="value1" maxlength="4"/>
<input name="input2" id="input2" placeholder="value2" maxlength="10"/>
<input name="input3" id="input3" placeholder="value3" maxlength="3"/>
</form>
https://jsfiddle.net/hg1db2sp/1/
更改$(this).next('input')。focus();到AJAX提交请求。
答案 1 :(得分:1)