我繼承了一些代碼,我試圖找出僅在IE中找到的錯誤。 ExtJS用於生成一個搜索框。 Ext創建一個<img>
,它充當搜索的觸發器。在ExtJS生成的搜索框中按下「enter」不能在IE中工作
在IE中,您可以點擊img來提交搜索。但是,如果按下回車鍵,它會激活一個onClick按鈕,它出現在頁面的更下方。下面的代碼。我怎樣才能確保'specialkey'被分配來觸發搜索? (我有點不清楚爲什麼它在非IE瀏覽器中工作正常)。
Ext.onReady(function(){
// create user extensions namespace (Ext.ux.form)
Ext.namespace('Ext.ux.form');
// Ext.ux.form.SearchableTextField constructor
Ext.ux.form.SearchableTextField = function(config) {
// call parent constructor
Ext.ux.form.SearchableTextField.superclass.constructor.call(this, config);
// associate ENTER key with button click
this.on('specialkey', function(f, e) {
if (e.getKey() == e.ENTER) {
this.onTriggerClick();
}
}, this);
} // end of Ext.ux.form.SearchableTextField constructor
// extend
Ext.extend(Ext.ux.form.SearchableTextField, Ext.form.TriggerField, {
triggerClass: 'x-form-search-trigger',
onTriggerClick : function() {
alert('customize in you app code');
}
}); // end of extend
var tb = new Ext.Toolbar({
renderTo: 'searchbox'
});
var search = new Ext.ux.form.SearchableTextField({
triggerClass:'x-form-search-trigger banner-searchbox-submit',
id:'banner-searchbox',
width:100,
onTriggerClick: function(){
var x = this.getRawValue();
this.setRawValue('');
document.forms[0].method = 'post';
document.forms[0].action = 'find.php?site=<?=$site?>&lang=<?=$lang?>';
document.forms[0].qrystring.value = x;
var pN = document.getElementById("pageNum");
if (pN != null) {
document.forms[0].pageNum.value = 1;
}
document.forms[0].submit();
}
});
var searchPat = tb.add('-','<?=$menuPatients[$lang][2]?>: ', ' ', search);
tb.doLayout();
原來,我們解決了這個問題不是通過改變ExtJS的,而是通過切換該更遠出現向下的按鈕DOM(並在IE中被觸發)。而不是切換到使用