Проверка нескольких инпутов
Добрый день,
Подскажите плз по такой небольшой проблеме. Есть несколько инпутов и хочется проверить что заполнен хотя бы один из них. Можно ли реализовать это jquery.validate.min.js? |
это можно реализовать и на голом JS
|
что то типо этого?
<HTML> <HEAD> <TITLE> </TITLE> <script type="text/javascript"> function proverka() { var k=0 for(var i=0;i<document.getElementsByTagName('input').length;i++) { if (document.getElementsByTagName('input')[i].value!="") { k=1; } } k==1?alert("заполнен хотя бы 1"):alert("ничо не заполнено"); } </script> </HEAD> <BODY> <form action="#" id="form1"> <input type="text" > <input type="text" > <input type="text" > <a href="#"onclick="proverka()">proverka</a> </BODY> </HTML> |
В общем-то да, вы правильно пишите.
могу дать несколько общих рекомендаций: 1)используйте скобки при вложенных операторах. вы уверены, что оператор сравнения имеет более высокий приоритете, чем тринарный? лично я - нет. 2)стоит вынести document.getElementsByTagName('input') из цикла. меньше дергаете структуру, быстрее скрипт 3)успешный вывод, совзвратом из ф-ции можно мджелать внутри цикла. или break сделать. в любом случае нам достаточно цикл крутить до первого попавшегося элемента, а не полностью |
Тернарный оператор - это условная конструкция, а не операция сравнения, и скобки обрамляющие условие не нужны, их ставят просто так, чтобы визуально отделить условие. К тому же вопросительный знак в языке не участвует ни в одной из операции, поэтому никаких неоднозначностей, связанных с ним, впринципе быть не может.
|
неодназанчности могут быть связанные с незнанием приоритетов выполнения операторов
например, я бы мог не зная порядок выполнения операторов прочитать тот код так: k==(1?alert("заполнен хотя бы 1"):alert("ничо не заполнено")); (я целиком осознаю что эта коснтрукция бред, и так прочитать код топик-стартера нельзя даже не зная приоритеты операторов) а вообще, впервую очередь это относилось к хорошему стилю написания кода. независимо от причин, код с обрамленным условием в тернарном операторе читается легче. а еще легче без него читается |
Часовой пояс GMT +3, время: 04:50. |