Проверка нескольких инпутов
Добрый день,
Подскажите плз по такой небольшой проблеме. Есть несколько инпутов и хочется проверить что заполнен хотя бы один из них. Можно ли реализовать это 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, время: 03:51. |