在同一页面上,我还有一个输入框-ibox2
。
问题-在ibox1
上执行任何操作并在其中保留length> 5的值之后,如果我开始输入ibox2
,则焦点会跳回到ibox1
。
正在执行if
与ibox1.focus()
的循环。在外部单击时,如何将焦点完全从ibox1
移开,并使if
循环及其语句无效。
我尝试了blur
,但没有成功。
var ibox1 = $("#inputbox1");
$(document).on("change", ibox1,function(e) {
var valu = ibox1.val();
if(valu.length > 5){
#do something
ibox1.focus(); #used this as input box lost focus with each charater typed.
}
});
var ibox2 = $("#inputbox2"); #This is for google places autocomplete.
PS-请不要将其标记为重复项,我在这里尝试了几乎所有内容,然后才发布了此内容。得到解决方案后,我将其删除。
推荐的mod,我遵循了一个不错的答案,并在理解$('document')时犯了一个错误,但是现在我将其清除了。这就是我不删除此问题的原因,即使我说可以,也可能会帮助其他人。你们如果 您觉得可以删除它。谢谢。
答案 0 :(得分:2)
焦点正在跳回到ibox1
,因为您是在每次触发onChange
事件时都指示文档这样做。
例如:$(document).on("change", ibox1, funct...
,您在其中呼叫ibox1.focus();
`。
可能的解决方案:将更改事件绑定到感兴趣的元素本身,避免将来将具有局部重要性的事件绑定到整个文档。
答案 1 :(得分:1)
使用简单的方法将事件附加到输入。检查下面的代码可能对您有帮助。
(function(){
var in1 = jQuery('#input1'); // first input
var in2 = jQuery('#input2'); // second input
// On change of first input
in1.change(function(){
if(this.val().length > 5){
// do something
}
});
// On change of second input
in2.change(function(){
if(this.val().length > 5){
// do something
}
});
})();