我正在使用EmberJS作为我的webapp,当我创建一个新记录(在编辑模式下设置)时,我的第一个字段(输入文本)具有autofocus =“autofocus”参数集。它首次在Chrome上运行时没有问题,但之后没有问题。
页面加载一次,因为它是一个Ember应用程序,并且在创建新记录时会重新生成视图(记录视图)。
知道如何解决此问题吗?
编辑: 我删除了自动对焦属性,并尝试使用Jquery focus(),如https://stackoverflow.com/a/14763643
App.FocusedTextField = Em.TextField.extend({
didInsertElement: function() {
this.$().focus();
}
});
现在,即使是第一次也没有焦点。另外,如果我尝试用this.$().focus();
替换this.$().hide();
,则隐藏输入。控制台中的this.$()
也会显示正确的输入,但focus()
不起作用!
答案 0 :(得分:1)
我会考虑将您的输入移动到视图或组件,然后在this.$().focus();
函数中执行didInsertElement
之类的操作。
答案 1 :(得分:0)
我遇到了与自动对焦完全相同的问题,但是.focus()函数确实对我有用。这是我的编码方式:
html:
<input type="text" id="idTextbox"/>
javascript:
$('#idTextbox').focus();