Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Проверка нескольких инпутов (https://javascript.ru/forum/misc/2274-proverka-neskolkikh-inputov.html)

bagirov 30.11.2008 18:45

Проверка нескольких инпутов
 
Добрый день,

Подскажите плз по такой небольшой проблеме.
Есть несколько инпутов и хочется проверить что заполнен хотя бы один из них. Можно ли реализовать это jquery.validate.min.js?

Gvozd 04.12.2008 23:51

это можно реализовать и на голом JS

fizzle 05.12.2008 03:58

что то типо этого?
<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>

Gvozd 05.12.2008 07:52

В общем-то да, вы правильно пишите.
могу дать несколько общих рекомендаций:
1)используйте скобки при вложенных операторах.
вы уверены, что оператор сравнения имеет более высокий приоритете, чем тринарный? лично я - нет.
2)стоит вынести document.getElementsByTagName('input') из цикла.
меньше дергаете структуру, быстрее скрипт
3)успешный вывод, совзвратом из ф-ции можно мджелать внутри цикла.
или break сделать.
в любом случае нам достаточно цикл крутить до первого попавшегося элемента, а не полностью

Octane 05.12.2008 13:19

Тернарный оператор - это условная конструкция, а не операция сравнения, и скобки обрамляющие условие не нужны, их ставят просто так, чтобы визуально отделить условие. К тому же вопросительный знак в языке не участвует ни в одной из операции, поэтому никаких неоднозначностей, связанных с ним, впринципе быть не может.

Gvozd 05.12.2008 16:34

неодназанчности могут быть связанные с незнанием приоритетов выполнения операторов
например, я бы мог не зная порядок выполнения операторов прочитать тот код так:
k==(1?alert("заполнен хотя бы 1"):alert("ничо не заполнено"));

(я целиком осознаю что эта коснтрукция бред, и так прочитать код топик-стартера нельзя даже не зная приоритеты операторов)
а вообще, впервую очередь это относилось к хорошему стилю написания кода.
независимо от причин, код с обрамленным условием в тернарном операторе читается легче.
а еще легче без него читается


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