Javascript 是否可以将同一文本框集中在其onBlur()事件上?
我有HTML:Javascript 是否可以将同一文本框集中在其onBlur()事件上?,javascript,html,Javascript,Html,我有HTML: <input type="text" id="text1" onBlur="focusMe(this.id);" /> 我会直接通过控制。为什么传递ID只是为了再次从中获取控件 标记: <input type="text" id="text1" onBlur="focusMe(this);" /> 嗯,运行您的代码表明了这一点,而且可能有很好的理由 既然我在这里,我应该指出,您实际上可以传递对this而不是this.id的引用,这样可以省去一些麻烦:
<input type="text" id="text1" onBlur="focusMe(this.id);" />
我会直接通过控制。为什么传递ID只是为了再次从中获取控件 标记:
<input type="text" id="text1" onBlur="focusMe(this);" />
嗯,运行您的代码表明了这一点,而且可能有很好的理由 既然我在这里,我应该指出,您实际上可以传递对this而不是this.id的引用,这样可以省去一些麻烦:
onBlur="focusMe(this)"
function focusMe(el) {
el.focus();
}
但它无论如何都不起作用,所以这有点毫无意义。有可能:
function focusMe(Id) {
setTimeout(function() {document.getElementById(Id).focus();}, 0);
}
您的脚本无法工作,因为在焦点丢失之前调用了onBlur
两点意见:
您最好使用对输入的引用,而不是其id
为什么要这样做?!
@nickf-你看到问题的标题了吗?是的,我看到了,但是有代码已经编写好了,我们被问到它是否有效?运行它并找出答案,天哪!如果只有一个文本输入字段,那么强制将焦点放在该字段上可能是有意义的。
onBlur="focusMe(this)"
function focusMe(el) {
el.focus();
}
function focusMe(Id) {
setTimeout(function() {document.getElementById(Id).focus();}, 0);
}