Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Проверка наличия текста в поле формы (https://javascript.ru/forum/jquery/10710-proverka-nalichiya-teksta-v-pole-formy.html)

Glook 16.07.2010 16:52

Проверка наличия текста в поле формы
 
Можно ли и если да, то как можно проверять value поля формы при загрузке страницы?

exec 16.07.2010 16:55

if ( element.value ) { … } else { … }

Glook 16.07.2010 17:15

мммм.... ничего не понял ((
вот что я пытаюсь сделать
$(function(){
if($('input').attr("value") !== ""){
$(this).siblings('label').hide();
}
});
(типа, если input НЕ пустой то скрывать label)
но это конечно не работает.

exec 16.07.2010 18:12

$(function () {
	$('input').each(function () {
		if ( !this.value ) {
			$(this).siblings('label').hide();
		}
	});
});


Есть ещё один более короткий вариант, но я не уверен насчёт его работоспособности:

$(function () {
	$('input[!value] ~ label').hide();
});

subzey 16.07.2010 19:37

Цитата:

Сообщение от exec (Сообщение 64115)
$(function () {
	$('input[!value] ~ label').hide();
});

Это проверка на наличие аттрибута !value, которого скроее нет, чем есть.

Оператор ~ выбирает сиблинга, расположенного после элемента:
alert($("head ~ body").size()); // 1
alert($("body ~ head").size()); // 0



Мое предложение:
$("input[value])").siblings("label").hide()

Glook 16.07.2010 19:40

exec, вообще-то, оба примера не работают ( вернее первый прячет label в независимости есть в поле значение или нет

exec 16.07.2010 19:46

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
	<head>
	<script type="text/javascript" src="http://code.jquery.com/jquery-1.4.2.min.js">
	</script>
	</head>
	<body>
		<div>
			<input type="text" />
			<label>
				Not visible
			</label>
		</div>
		<div>
			<input type="text" value="foo" />
			<label>
				Visible
			</label>
		</div>
		<script type="text/javascript">
			$(function () {
				$('input').each(function () {
					if ( !this.value ) {
						$(this).siblings('label').hide();
					}
				});
			});
		</script>
	</body>
</html>


Кстати, мой сокращённый пример тоже работает, только в таком варианте:

$('input:not([value]) ~ label').hide();


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