В Internet Explorer 9, который я понимаю, поддерживает функцию addEventListener
, дает мне странную ошибку, когда я пытаюсь использовать функцию здесь:IE9 не позволяя входы внутри кнопки тегов
function addEvent(evnt, elem, func) {
if (elem.addEventListener) // W3C DOM
elem.addEventListener(evnt,func,false);
else if (elem.attachEvent) { // IE DOM
elem.attachEvent("on"+evnt, func);
}
else { // No much to do
elem[evnt] = func;
}
}
(предоставлено другой вопрос здесь, на SO)
Я получаю ошибку:
SCRIPT5007: Unable to get the value of the property 'addEventListener': object is null or undefined.
Он ломает на линии if(elem.addEventListener)
Я передаю его document.getElementById('search')
, который является полем ввода текста; для EVNT, я передаю его keydown
, и для функции Я передаю:
function(e) {
if (!e)
{
var e = window.event;
}
// Enter is pressed
if (e.keyCode == 13)
{
search($("#search").val());
$("#search").val("");
$("#search").blur();
}
}
У меня нет никаких проблем с этим в Chrome, Firefox или Safari, но IE9 дает мне горе.
Редактировать
Хорошо Я получил JS, чтобы работать должным образом, поставив EventListener в инлайн, но я все еще получаю проблему, которая, как представляется, быть родителем проблема за все это здесь: document.getElementById('search')
возвращает только в IE. Он работает в каждый другой браузер, и это только один элемент, который возвращает null.
Редактировать 2 - Я обновил название вопроса, чтобы отразить истинную проблему здесь.
Так что корень проблемы в настоящее время является то, что <input>
не отображается в HTML вообще (хотя это делает отображаться в исходном коде) ...? У меня есть поле ввода внутри <button>
, которое отлично работает в любом другом браузере, но не в IE. Как я могу это исправить?
Насколько вы уверены, что IE на самом деле находит элемент, который, по вашему мнению, находит? Другими словами, вы использовали отладчик, чтобы проверить и посмотреть, что такое «elem» на самом деле? – Pointy
Где/Как вы называете 'addEvent' – Musa
Можете ли вы разместить jsfiddle или codepen или plunker? – zetlen