我在同一页面上还有一个输入框-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')时犯了一个错误,但现在我将其清除了。这就是我不删除此问题的原因,即使我说可以,也可能会帮助其他人。你们如果
您觉得可以删除它。谢谢。
最佳答案
焦点正在跳回ibox1
,因为每次onChange
事件被触发时,您都在指示文档这样做。
例如:$(document).on("change", ibox1, funct...
您要在其中调用ibox1.focus();
`。
可能的解决方案:将更改事件绑定(bind)到感兴趣的元素本身,并避免将来将具有局部重要性的事件绑定(bind)到整个文档。