Проверка данных формы составным условием?
Добрый день, уважаемые форумчане! Нужна Ваша скорая помощь.
У меня есть форма на php "custinfo_form" в которую пользователь вносит данные, проверка их корректности выполняется вызовом js скрипта (из отдельного файла). Пример: в форме есть поле ves Нужно сравнить значение введенное пользователем с двумя цифровыми значениями в одной строке. Пишу так: ............. if ((document.custinfo_form.ves.value<"10") || (document.custinfo_form.ves.value>"3")) { alert("Вам не подходят детские кресла Beby Car серии corona"); return false; } return true; ............. Проверка выполняется не корректно, и со скобками и без. Но если оставить только одно условие, то все работает прекрасно. Вопрос: правильно ли я обращаюсь к полю формы и можно ли так обращаться два раза, если нет то как быть? Очень жду ответа :cray: |
"10" - это строка
10 - а это число document.custinfo_form.ves.value - это строка < - а как вы думаете как этот оператор будет работать со строками if ((parseInt(document.custinfo_form.ves.value)<10) || (parseInt(document.custinfo_form.ves.value)>3)) parseInt() - преобразует строку в число |
alert([ "9" < "10", Number("9") < 10 ]); |
Skipp, спасибо за разъяснение со строками и числовыми значениями, кажется в голове себе уяснила :)
Но вот проблема осталось та же: Если одно условие - работает, если два, то нет. Всегда выдает folse, т.е. сообщение alert... Как быть? :cray: p.s. может вообще обращение "document.custinfo_form.ves.value" употреблять несколько раз нельзя? |
myafa,
if ((parseInt(document.custinfo_form.ves.value)<10) || (parseInt(document.custinfo_form.ves.value)>3)) Под это условие подходит всё ...скорее всего надо if ((parseInt(document.custinfo_form.ves.value)<10)&&(parseInt(document.custinfo_form.ves.value)>3)) или if ((parseInt(document.custinfo_form.ves.value)>10)||(parseInt(document.custinfo_form.ves.value)<3)) |
Рони, Вы правильно подметили про знаки. Это здесь я ошиблась, а в своем скрипте условия "меньше" трех "или" "больше" десяти.
Спасибо за внимательность :thanks: Только вопрос по прежнему открыт... .......... if ((document.custinfo_form.ves.value<"3") || (document.custinfo_form.ves.value>"10")) { alert("Вам не подходят детские кресла Beby Car серии corona"); return false; } return true; .......... |
Цитата:
разве так не работает? if ((parseInt(document.custinfo_form.ves.value)<3) || (parseInt(document.custinfo_form.ves.value)>10)) { alert("Вам не подходят детские кресла Beby Car серии corona"); return false; } return true; |
Сообщение от Skipp
разве так не работает? К моему большому сожалению нет. И с кавычками и без кавычек .... Если подставить, просто для эксперимента, во второе условие проверку соседнего поля формы то все работает: if ((parseInt(document.custinfo_form.ves.value)<3) || (parseInt(document.custinfo_form.rost.value)>80)) { alert("Вам не подходят детские кресла Beby Car серии corona"); return false; } return true; проходит правильно проверку и на входное значение по весу и по росту Почему... А можно вообще в этой проверке не каждый раз смотреть что в другом файле ввел пользователь, а один раз взять данные и поместить их в переменную и уже с ней работать? |
а что так выдает?
alert( document.custinfo_form.ves.value ); if ((parseInt(document.custinfo_form.ves.value)<3) || (parseInt(document.custinfo_form.ves.value)>10)) { alert("Вам не подходят детские кресла Beby Car серии corona"); return false; } |
Часовой пояс GMT +3, время: 01:07. |