例如,我正在创建一个登录页面。
Chrome问我是否想要记住密码,我做了,所以我让它填写表格。
我对表单进行验证,并在用户点击发送按钮或按Enter键时检查字段是否为空,但我似乎无法从Chrome填写的表单中获取数据。当浏览器填写用户的字段时,事件不会被触发,这将导致绑定到字段的属性更新。
我试图使用jQuery选择器来获取didInsertElement()
中的值,但浏览器会在调用该函数后填充该字段。
App.LoginView = Ember.View.extend({
didInsertElement: function() {
this._super();
var usernameInput = jQuery("#usernameInput").val();
var passwordInput = jQuery("#passwordInput").val();
if (usernameInput) this.set('controller.username', usernameInput);
if (passwordInput) this.set('controller.password', passwordInput);
}
});
修改:
我包裹了抓取Ember.run.next()
App.LoginView = Ember.View.extend({
didInsertElement: function() {
this._super();
var loginView = this;
Ember.run.next(function() {
var usernameInput = jQuery("#usernameInput").val();
var passwordInput = jQuery("#passwordInput").val();
if (usernameInput) loginView.set('controller.username', usernameInput);
if (passwordInput) loginView.set('controller.password', passwordInput);
});
}
});
这似乎已经成功了,但我不知道它是否是一个强大的解决方案。经过一段时间的测试后,它似乎有效。我等着发一个答案并选择它,以防其他人有更好的答案。
答案 0 :(得分:0)
对于这种情况,您可以在用户点击“发送”按钮(或按Enter)后检查空虚。