У меня проблемы с JavaScript в IE8 (радость).
По сути, мне нужно преобразовать любые записи с отрицательным числом в определенном текстовом поле в положительное значение. Я полагаю, я бы сделал это так:
$('input[type="text"]').live('change', function () {
var number = $(this).val();
if (number < 0)
{
$(this).val(-number);
}
});
Позже я делаю вещи, когда фокус текстового поля теряется:
$('input[type="text"]').live('blur', function () {
// do stuff with textbox's _positive_ number
})
К сожалению, в IE8 , когда значение текстового поля изменяется (т. Е. Вы вводите -23 в текстовое поле), событие изменения запускается дважды, а событие размытия вообще не запускается. *
Другие современные браузеры этого не делают.
- Почему событие изменения вызывается дважды?
- Почему событие размытия не срабатывает?
- Как мне это исправить?
Идите сюда, чтобы увидеть это: http://jsfiddle.net/ajbeaven/AwZKM/