Я унаследовал некоторый код, и я пытаюсь выделить ошибку, которую мы обнаружили только в IE. ExtJS используется для генерации окна поиска. Ext создает <img>
, который действует как триггер для поиска.
В IE вы можете нажать на img, чтобы отправить запрос. Однако, если вы нажмете Enter, он активирует кнопку onClick, которая появляется дальше вниз по странице. Код ниже. Как я могу убедиться, что специальный ключ назначен для запуска поиска? (Мне немного непонятно, почему он работает нормально в браузерах не 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();