嗨,我正在使用余烬之处自动加注,我想修改下面两个加载项的行为。1.“我的位置自动完成”文本框位于窗体内。当我按回车键,同时填写自动填写文本框表单被提交。(即使我没有从google建议中选择选项)。2.如果没有选择任何位置并按下enter键,则应该选择第一个选项。
我想扩展这句话会有帮助。因此,我尝试了下面的代码,避免提交表单,但它没有工作。
import Ember from 'ember';
import PlacesAutocompleteField from 'ember-place-autocomplete/components/place-autocomplete-field';
export default PlacesAutocompleteField.extend({
init(){
this._super(...arguments);
},
keyUp: function(e){
if(e.keyCode === 13){
e.preventDefault();
}
},
actions:{
placeChanged(){
this.toggleProperty('PLACE_CHANGED_FLAG');
}
}
});我尝试的另一种方法是看看它是否有效--我添加了以下内容
google.maps.event.addDomListener(this.$().children()[0],'keyUp',function(){
console.log('keyup...');
console.log(e);
});它的内部是自我。所以新代码是
autocompleteCallback: Ember.on('didInsertElement', function() {
this.getAutocomplete();
this.get('autocomplete').addListener('place_changed', () => {
this.placeChanged();
});
google.maps.event.addDomListener(this.$().children()[0],'keyUp',function(){
console.log('keyup...');
console.log(e);
});
}),但是它不工作,杰斯宾输入"d“,不要选择任何建议并按enter键。
按照@GJK建议使用$(inputElement) works更新了。如果用户不选择任何内容,则按回车方向选择建议。
$(inputElement).keydown((event) => {
if (event.keyCode === 13) {
let o = $('div.pac-container').children().first();
event.preventDefault();
}发布于 2015-11-18 13:52:46
结果发现你听错了。如这个问题中所示,您必须重写keypress事件而不是keyup事件。
在您的JSBin中,我能够将下面的代码放在getAutocomplete函数的末尾,它成功地阻止了表单的提交。
$(inputElement).keypress((event) => {
if (event.keyCode === 13) {
event.preventDefault();
}
});https://stackoverflow.com/questions/33748464
复制相似问题