Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 19.01.2015, 22:10
Новичок на форуме
Отправить личное сообщение для bugagawenka Посмотреть профиль Найти все сообщения от bugagawenka
 
Регистрация: 03.10.2014
Сообщений: 5

Не работает в IE 8. parseFloat
Вот такой код.
Проблема возникает в IE 8. Подскажите пожалуйста, как можно исправить?

<form onsubmit="return false;"
oninput="document.getElementById('rez').innerHTML 
= parseFloat(document.getElementById('a').value) *
parseFloat(document.getElementById('b').value) * 2;
">
<p>А: <input id="a" type="number"></p> 
<p>Б: <input id="b" type="number"></p>
<p>Рез: <output id="rez"></output></p>
</form>
Ответить с цитированием
  #2 (permalink)  
Старый 19.01.2015, 22:29
Новичок на форуме
Отправить личное сообщение для bugagawenka Посмотреть профиль Найти все сообщения от bugagawenka
 
Регистрация: 03.10.2014
Сообщений: 5

Сообщение от Rise Посмотреть сообщение
bugagawenka, тыц
Спасибо
Ещё повоюем =)))
Ответить с цитированием
  #3 (permalink)  
Старый 21.01.2015, 01:26
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Rise, неа.
1. В IE8 нет события input (есть близкое propertychange, но оно не всплывает. Можно тупо юзать change или keyup)
2. Элемент <output> имеет текстовое содержимое (textContent). Его можно изменять. Причем value - это практически его псеводним. (https://html.spec.whatwg.org/multipa...output-element)

Rise, так что можно делать output.innerHTML или appendChild(textNode) - и это кроссбраузерно.
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #4 (permalink)  
Старый 21.01.2015, 10:35
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Хм. Я раньше считал что html5shim в IE нужен только для того, чтобы стили применились к новым тегам. Оказывается проблема не только в стилях, но и в парсинге - без shim'а элементы парсятся как пустые (то есть как <input>). Соответственно, innerHTML к ним не применим.

Но это очень просто исправить. Этот код будет работать в IE8:
<!DOCTYPE html>
<script>
	document.createElement('output');
</script>
<body>
<form onsubmit="return false;"
onkeyup="document.getElementById('rez').innerHTML
= parseFloat(document.getElementById('a').value) *
parseFloat(document.getElementById('b').value) * 2;
">
<p>А: <input id="a" type="number"></p>
<p>Б: <input id="b" type="number"></p>
<p>Рез: <output id="rez"></output></p>
</form>


Либо подключить html5shim.
__________________
В личку только с интересными предложениями
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
JS: работает на сервере, не работает из папки -majestic- Общие вопросы Javascript 2 02.08.2012 14:41
Не работает push! Динамическая вставка TSEH25 ExtJS 5 03.07.2012 13:00
jQyery функция странно работает! Midel Общие вопросы Javascript 4 08.04.2012 13:40
помогите найти ошибку (работает в IE но не работает в Firefox) Len4ik Javascript под браузер 2 11.05.2010 15:41
Safari + ajax некорректно работает, а в других работает demi AJAX и COMET 35 15.07.2009 14:11