не срабатывает event.returnValue
Здравствуйте, не хочет в ie8 работать
addEvent(input, 'keypress', function(e){ e = e || window.event; if( !(/ |\d|\+/.test(String.fromCharCode(e.charCode))) ){ if(e.preventDefault) e.preventDefault(); else e.returnValue = false; } }); function addEvent(elem, type, handler, param){ param = param || false; if(elem.addEventListener){ elem.addEventListener(type, handler, param); } else { elem.attachEvent('on'+type, handler); } return false; } Ну чё ж так? |
sash003, пора уж научиться учебником пользоваться Мышь: IE8-
|
Всё равно не работает. какие индусы придумали кроссбраузерные войны.. :(
|
Цитата:
https://learn.javascript.ru/keyboard-events#getChar Цитата:
!(/ |\d|\+/.test(String.fromCharCode(e.charCode||e.keyCode))) |
Всё равно не хочет понимать ишак :-?
|
sash003,
всё нормально срабатывает или делайте макет. |
Смотрите, так должно быть?
addEvent(input, 'keypress', function(e){ e = e || window.event; if( !(/ |\d|\+/.test(String.fromCharCode(e.charCode||e.keyCode))) ){ if(e.preventDefault) e.preventDefault(); else e.returnValue = false; } }); |
sash003,
да |
А включаешь - не работает :yes:
|
sash003, проверьте здесь
<!DOCTYPE HTML> <html> <head> <title>Untitled</title> <meta charset="utf-8"> </head> <body> <input name=""> <script> var input = document.querySelector('input') ; addEvent(input, 'keypress', function(e){ e = e || window.event; if( !(/ |\d|\+/.test(String.fromCharCode(e.charCode||e.keyCode))) ){ if(e.preventDefault) e.preventDefault(); else e.returnValue = false; } }); function addEvent(elem, type, handler, param){ param = param || false; if(elem.addEventListener){ elem.addEventListener(type, handler, param); } else { elem.attachEvent('on'+type, handler); } return false; } </script> </body> </html> |
рони, чудасия какая-то, открываю ваш пример в ie, всё работает, открываю свой файлик - нет :( изза доктайпа html5 чтоли?
|
Цитата:
если нужно без DOCTYPE тогда без document.querySelector var input = document.getElementsByTagName("input")[0] ; или document.getElementById |
рони, благодарю!
Я наверно вам уже надоел, но гляньте ещё, пожалуйста, делаю мини джейквери для народа, не хочет работать slideUp function _init_(el){ this.s = document.querySelectorAll(el); } // главная и самая сложная функшн function _A_(el){ return new _init_(el) } _init_.prototype.css = function(obj){ if(typeof obj === 'object'){ for (var e = 0; e < this.s.length; e++){ for (i in obj){ this.s[e].style[i] = obj[i]; } } return this; } else { if(obj === 'width') return this.s[0].offsetWidth; if(obj === 'height') return this.s[0].offsetHeight else return this.s[0].style[obj] || getComputedStyle(this.s[0])[obj]; } } _init_.prototype.attr = function(){ } _init_.prototype.slideUp = function (duration){ this.css({'overflow' : 'hidden'}); var height = parseInt(this.css('height')); for(var i = 1; i <= height ; i++){ (function(i){ setTimeout(function(){ this.css({'height' : (height-i)+'px'}); // this.css is not a function. хотя overflow устанавливает перед этим }, i*duration/height); })(i); } return this; } |
sash003,
таймер ничего не знает про твой this -- сохрани 31 var self = this; 37 self.css |
Не работает, консоль молчит как подкупленная :) Да что за напасть такая, что не копни, кругом засада :(
|
sash003,
делайте макет |
sash003,
:-? <!DOCTYPE HTML> <html> <head> <title>Untitled</title> <meta charset="utf-8"> <style type="text/css"> p{ height: 200px; background-color: #0000CC; } </style> </head> <body> <p></p> <script> function _init_(el){ this.s = document.querySelectorAll(el); } // главная и самая сложная функшн function _A_(el){ return new _init_(el) } _init_.prototype.css = function(obj){ if(typeof obj === 'object'){ for (var e = 0; e < this.s.length; e++){ for (i in obj){ this.s[e].style[i] = obj[i]; } } return this; } else { if(obj === 'width') return this.s[0].offsetWidth; if(obj === 'height') return this.s[0].offsetHeight else return this.s[0].style[obj] || getComputedStyle(this.s[0])[obj]; } } _init_.prototype.attr = function(){ } _init_.prototype.slideUp = function (duration){ var self = this; this.css({'overflow' : 'hidden'}); var height = parseInt(this.css('height')); for(var i = 1; i <= height ; i++){ (function(i){ setTimeout(function(){ self.css({'height' : (height-i)+'px'}); // this.css is not a function. хотя overflow устанавливает перед этим }, i*duration/height); })(i); } return this; } var x = _A_("p"); x.slideUp(3000) </script> </body> </html> |
БЛАГОДАРЮ, ДРУЖИЩЕ!
Я как всегда не туда смотрел :) ТОЛЬКО для блочных элементов работает, а я пытался ссылку скрыть. Даже для инлайн блок не работает |
Тему не читал, ибо ишаку бортовой номер 8 давно уже показывают сервер нот фаунд.
|
Часовой пояс GMT +3, время: 04:44. |