2013-09-18 2 views
2

Я пытаюсь закодировать что-то, что позволяет пользователю нажимать enter и получать результат запроса после ввода текста. Следующий код отлично работает с Chrome, но не с IE 8 и 7 (я не хочу другую версию IE) я использовал Jquery впервые:IE Jquery click() срабатывание события не работает

function ifEnterClick(event) { 
    if (event.keyCode == 13) { 
     var elm = '#findButton'; 
     $(elm).click(); 
    } 
} 

и я тоже пытался JavaScript:

function ifEnterClick(event) { 
    if (event.keyCode == 13) { 
     var obj = document 
       .getElementById("findButton"); 
     fireEvent(obj, 'click'); 
    } 
} 
function fireEvent(obj, evt) { 

    var fireOnThis = obj; 
    if (document.createEvent) { 
     var evObj = document.createEvent('MouseEvents'); 
     evObj.initEvent(evt, true, false); 
     fireOnThis.dispatchEvent(evObj); 

    } else if (document.createEventObject) { 
     var evObj = document.createEventObject(); 
     fireOnThis.fireEvent('on' + evt, evObj); 
    } 
} 

В обоих случаях это работает с Chrome, но не с IE.

+0

Как вы подключаете ifEnterClick? Я не вижу никакого jquery, используемого здесь. Это прямое javascript, и это ваша «проблема», которую я предполагаю. jQuery нормализует события и обработку событий для вас, поэтому, если он работает в одном браузере, 99,9% времени он будет работать в других. Переключите эту концепцию на jQuery, и я уверен, что она сработает. –

+2

Какую версию jq вы используете? jquery 2.x удалил старые браузеры (IE7, IE8, например), возможно, это ваша проблема. BTW, jquery имеет нормализованные ключевые события, вы должны использовать event.which, а не event.keyCode –

+0

Wolff, я использую версию 2.12, я думаю, что u правы. , но даже только JS не разворачивается. Eli Gassert , if (event.keyCode == 13) работает нормально, проблема заключается в том, что вы запускаете событие .click() – oueslatibilel

ответ

-3

изменение

var elm = '#findButton'; 

в

var elm = $('#findButton'); 
+3

Но OP использует $ (elm) .click(); поэтому было правильно использовать строку –

2

Попробуйте это:

function ifEnterClick(event) { 
    var keycode = (window.event) ? event.keyCode : event.which; 
    if (event.keyCode == 13) { 
    var elm = '#findButton'; 
    $(elm).click(); 
    } 
} 

Related: JavaScript KeyCode Values are "undefined" in Internet Explorer 8

+0

в версии recnt jq, она нормализована, просто используйте event.which, но это еще хороший ответ! –

+0

@ A.Wolff Правда, но мы не знаем, как используется функция 'ifEnterClick'. События только нормализуются, если они связаны с событием jQuery. Насколько нам известно, его можно вызывать с помощью встроенных обработчиков событий. – Ragnar123

+0

Вы правы, мы можем просто спекулировать здесь! –

0

Проблема не щелкает, его уволили хорошо, или называя действие t он внизу. Его после звонка и отправки.

Смежные вопросы