Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 19.02.2013, 14:14
Аспирант
Отправить личное сообщение для NeVirus Посмотреть профиль Найти все сообщения от NeVirus
 
Регистрация: 09.01.2013
Сообщений: 54

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

$('#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 раз все хорошо, но потом перестает - просто не реагирует на изменение полей... через несколько попыток снова начинает работать правильно. Где тут собака зарыта? Вставка значений на форму не того формата или это какая то особенность Яваскрипта (ну в том смысле что спамить итерации он не может)?
Ответить с цитированием
  #2 (permalink)  
Старый 19.02.2013, 14:16
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от NeVirus
спамить итерации он не может
Ответить с цитированием
  #3 (permalink)  
Старый 19.02.2013, 14:16
Аватар для SkyLight
Злюка-бобер
Отправить личное сообщение для SkyLight Посмотреть профиль Найти все сообщения от SkyLight
 
Регистрация: 21.03.2010
Сообщений: 438

В консоли что-то есть?
__________________
In WEB We Trust
У всех есть своя темная сторона...
Ответить с цитированием
  #4 (permalink)  
Старый 19.02.2013, 14:28
Аватар для rgl
rgl rgl вне форума
Профессор
Отправить личное сообщение для rgl Посмотреть профиль Найти все сообщения от rgl
 
Регистрация: 28.02.2011
Сообщений: 349

Сообщение от NeVirus Посмотреть сообщение
сравнение двух инпутов формы и если 1 больше то замена 2го на него...
Сравнение строк? Догадываюсь, что хочется чисел....
Ответить с цитированием
  #5 (permalink)  
Старый 19.02.2013, 14:36
Аспирант
Отправить личное сообщение для NeVirus Посмотреть профиль Найти все сообщения от NeVirus
 
Регистрация: 09.01.2013
Сообщений: 54

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

На счет консоли... а что именно она могла сказать? Я новичек и просто не понимаю о чем речь)
Ответить с цитированием
  #6 (permalink)  
Старый 19.02.2013, 14:37
Аспирант
Отправить личное сообщение для NeVirus Посмотреть профиль Найти все сообщения от NeVirus
 
Регистрация: 09.01.2013
Сообщений: 54

Сообщение от rgl Посмотреть сообщение
Сравнение строк? Догадываюсь, что хочется чисел....
Да Нужно как то объяснить в коде что имеем дело с числами?

Последний раз редактировалось NeVirus, 19.02.2013 в 14:40.
Ответить с цитированием
  #7 (permalink)  
Старый 19.02.2013, 15:10
Аватар для rgl
rgl rgl вне форума
Профессор
Отправить личное сообщение для rgl Посмотреть профиль Найти все сообщения от rgl
 
Регистрация: 28.02.2011
Сообщений: 349

Сообщение от NeVirus Посмотреть сообщение
Да Нужно как то объяснить в коде что имеем дело с числами?
Да, напр. так:
if (parseFloat(document.getElementById("input_min_pri ce").value) > parseFloat(document.getElementById("input_max_pric e").value)) ...
или parseInt в зависимости от...

Последний раз редактировалось rgl, 19.02.2013 в 15:15.
Ответить с цитированием
  #8 (permalink)  
Старый 19.02.2013, 15:23
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

Сообщение от 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

Последний раз редактировалось Deff, 19.02.2013 в 15:27.
Ответить с цитированием
  #9 (permalink)  
Старый 20.02.2013, 09:34
Аспирант
Отправить личное сообщение для NeVirus Посмотреть профиль Найти все сообщения от NeVirus
 
Регистрация: 09.01.2013
Сообщений: 54

Сообщение от Deff Посмотреть сообщение
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 то проходит.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перенос значений полей формы сайта и прикрепленного файла на другой сайт Lelya Серверные языки и технологии 0 18.09.2012 09:58
Умножение численных значений формы ввода FastSP Общие вопросы Javascript 8 08.04.2012 20:45
Cчётчик значений value в элементе формы input type="text"? Surlik jQuery 8 04.04.2012 04:49
сохранить значений полей формы в куки ivanweb Общие вопросы Javascript 1 19.01.2012 10:36
Очистка формы от дефолтных значений js hereim Общие вопросы Javascript 14 04.07.2010 21:29