2013-10-14 1 views
2

У меня есть отлично работающая функция jquery в Chrome, но она не работает с IE ... Сервер получает запрос на получение AJAX каждый раз, когда я что-то меняю в текстовом поле #form, но не на IEJQuery .on ('input', function() {...}); не работает с IE

$("#form").on('input', function() { 
    $("#value").val($("#value").val().toUpperCase()); 
    var postdata = {value: $("#value").val()} ; 
    $.get('/search', postdata, function(data) { 
     var result = ("Type : " + data['type'] + "<br/>Project name : " + data['project_name'] + "<br/>Project version : " + data['project_version'] + "<br/>Product name : " + data['product_name'] + "<br/>Product version : " + data['product_version'] + "<br/>Lib op : " + data['libop']) 
     $("#print").html(result) ; 
    }); 
}); 

У вас есть решение для этого?

Спасибо! С наилучшими пожеланиями,

Servietsky

+3

Какой версии IE? Событие ['oninput'] (http://msdn.microsoft.com/en-us/library/ie/gg592978 (v = vs.85) .aspx) может не работать в IE <9. Попробуйте использовать' onchange' Вместо этого: '$ (" # form "). on ('change', function() {'. Если вам действительно нужно использовать 'oninput' (он запускается, как только вход изменяется, и не дожидается его потеряйте фокус, как 'onchange'), вы можете попробовать следующее: http://www.useragentman.com/blog/2011/05/12/fixing-oninput-in-ie9-using-html5widgets/ –

+0

См. также документы Mozilla : https://developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers.oninput –

+1

На какой ракете ответили ранее на SO, проверьте здесь: http://stackoverflow.com/questions/19160902/ jquery-oninput-doesnt-get-fired-in-ie8-alone – lgrosales

ответ

4

Используйте OnKeyUp события

$('input').keyup(function(e) { 
    switch (e.which) { 
     case 16: break; // Shift 
     case 17: break; // Ctrl 
     case 18: break; // Alt 
     case 27: this.value = ''; break; // Esc: clear entry 
     case 35: break; // End 
     case 36: break; // Home 
     case 37: break; // cursor left 
     case 38: break; // cursor up 
     case 39: break; // cursor right 
     case 40: break; // cursor down 
     case 78: break; // N (Opera 9.63+ maps the "." from the number key section to the "N" key too!) (See: http://unixpapa.com/js/key.html search for ". Del") 
     case 110: break; // . number block (Opera 9.63+ maps the "." from the number block to the "N" key (78) !!!) 
     case 190: break; // . 
     default: 
     //add your code here which will execute by default 
    } 
}); 

Извините за длинный пост (указываются все события здесь)

+3

Если вы используете jQuery, то и var var = window.event || e; 'и' var keyUnicode = e.charCode || e.keyCode; строки не нужны. jQuery делает все это для вас уже. Посылаемый 'e' уже нормализуется. Кроме того, используйте ['e.which'] (http://api.jquery.com/event.which/) в вашем' switch'. jQuery нормализует это для вас тоже. –

+0

У меня эта проблема в старом IE (работает в более новых версиях). Только проблемы с ключом мы не будем фиксировать изменения, сделанные с помощью мыши или вырезания (которые мне нужно обрабатывать) – peterc

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