Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Нестабильно срабатывает вывод значений с формы (https://javascript.ru/forum/dom-window/35704-nestabilno-srabatyvaet-vyvod-znachenijj-s-formy.html)

NeVirus 19.02.2013 14:14

Нестабильно срабатывает вывод значений с формы
 
Доброго времени суток,

$('#price_form').live('focusout', function() {

if (document.getElementById("input_min_price").value > document.getElementById("input_max_price").value) {document.getElementById("input_max_price").value = document.getElementById("input_min_price").value;}
			});


Простейшая вещь - сравнение двух инпутов формы и если 1 больше то замена 2го на него... Но работает странно - первые 4-5 раз все хорошо, но потом перестает - просто не реагирует на изменение полей... через несколько попыток снова начинает работать правильно. Где тут собака зарыта? Вставка значений на форму не того формата или это какая то особенность Яваскрипта (ну в том смысле что спамить итерации он не может)?

danik.js 19.02.2013 14:16

Цитата:

Сообщение от NeVirus
спамить итерации он не может

:blink:

SkyLight 19.02.2013 14:16

В консоли что-то есть?

rgl 19.02.2013 14:28

Цитата:

Сообщение от NeVirus (Сообщение 235521)
сравнение двух инпутов формы и если 1 больше то замена 2го на него...

Сравнение строк? Догадываюсь, что хочется чисел....

NeVirus 19.02.2013 14:36

Цитата:

Сообщение от danik.js (Сообщение 235522)
:blink:

Нде, туманно выразился... имел ввиду что если очень быстро прогонять одинаковые события забиваются буфер\кеш или еще что то в этом роде.

На счет консоли... а что именно она могла сказать? Я новичек и просто не понимаю о чем речь)

NeVirus 19.02.2013 14:37

Цитата:

Сообщение от rgl (Сообщение 235527)
Сравнение строк? Догадываюсь, что хочется чисел....

Да :) Нужно как то объяснить в коде что имеем дело с числами?

rgl 19.02.2013 15:10

Цитата:

Сообщение от NeVirus (Сообщение 235530)
Да :) Нужно как то объяснить в коде что имеем дело с числами?

Да, напр. так:
if (parseFloat(document.getElementById("input_min_pri ce").value) > parseFloat(document.getElementById("input_max_pric e").value)) ...
или parseInt в зависимости от...

Deff 19.02.2013 15:23

Цитата:

Сообщение от NeVirus
Нде, туманно выразился... имел ввиду что если очень быстро прогонять одинаковые события забиваются буфер\кеш или еще что то в этом роде.

Cуть в том, что по умолчанию данные из input считаются строковой переменной! , Но если это точно и всегда цифры - то можно так:

$('#price_form').live('focusout', function() {
  var Min = +$("#input_min_price").val();
  var Max = +$("#input_max_price").val();
  if(Min>Max) $("#input_max_price").val(Min);

});

+ Преобразует строковую в number

NeVirus 20.02.2013 09:34

Цитата:

Сообщение от Deff (Сообщение 235547)
Cуть в том, что по умолчанию данные из input считаются строковой переменной! , Но если это точно и всегда цифры - то можно так:

$('#price_form').live('focusout', function() {
  var Min = +$("#input_min_price").val();
  var Max = +$("#input_max_price").val();
  if(Min>Max) $("#input_max_price").val(Min);

});

+ Преобразует строковую в number

Да так все ОК... спасибо!
Разве что по каким то причинам последнюю строчку он не понял - но если находить инпут через GetElementById то проходит.


Часовой пояс GMT +3, время: 18:53.