Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / jQuery - поиск элементов по указанному value / 10 сообщений из 10, страница 1 из 1
20.02.2013, 21:43
    #38159801
urukhay
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
jQuery - поиск элементов по указанному value
Привет. Есть простая формочка:
Код: html
1.
2.
3.
4.
5.
6.
<form id="myForm">
<input type="text" required><br>
<input type="text"><br>
<input type="text" required><br>
<input type="submit" value="submit">
</form



Пользователь вводит данные и отправляет форму. В этот момент мне нужно найти поля, обязательные для заполнения, которые при этом не заполнены, и вывести в них "This field is required". Понятное дело, это решается простым перебором:
Код: javascript
1.
2.
3.
4.
5.
6.
7.
var f = $('#myForm');
var fld = f.find('[type="text"]');
for(var i=0; i<fld.length; i++)
{
  if(fld.val() == "" && fld.attr('required'))
    fld.val('This field is required!');
}



Но ведь в jQuery есть поиск по разнообразным селекторам. Только почему то он учитывает тот html, который уже сформирован, а внесенные пользователем изменения в него (т.е. ввод данных) не учитывается. Т.е. следующий код выводит 0:
...
Рейтинг: 0 / 0
20.02.2013, 21:46
    #38159804
urukhay
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
jQuery - поиск элементов по указанному value
Код: javascript
1.
alert($('#myForm').find('[type="text"]['value="1"']['required']').length)


Я случайно отправил предыдущее сообщение. Имелось ввиду, что допустим я теперь хочу найти те поля, куда пользователь ввел единичку. И вот вышенаписанный код выведет 0. Почему так? Или в чем я не прав?
...
Рейтинг: 0 / 0
20.02.2013, 22:38
    #38159842
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
jQuery - поиск элементов по указанному value
urukhay
Код: javascript
1.
alert($('#myForm').find('[type="text"]['value="1"']['required']').length)

Или в чем я не прав?
Ты сам-то понимаешь что ищет этот селектор?
...
Рейтинг: 0 / 0
20.02.2013, 22:40
    #38159845
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
jQuery - поиск элементов по указанному value
urukhay , это даже не селектор у тебя. Это вообще нечто синтаксически ошибочное...
...
Рейтинг: 0 / 0
21.02.2013, 00:09
    #38159926
urukhay
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
jQuery - поиск элементов по указанному value
Скажем так: я понимаю, что ХОЧУ найти) Как мне казалось, то что я написал - это как раз решение задачи, но видимо это не так :) Поэтом я и написал сюда) Еще раз повторюсь: мне нужно найти те элементы <input type="text"> внутри указанной формы, у которых есть атрибут required, и в которых не введено никакого значения (тот пример был для простоты). Поодскажите плиз)

Хелпу на api.jquery.com я читал, но прочитав ее, созрела вот такая мысля) Поправьте плиз как надо.
Заранее благодарен!
...
Рейтинг: 0 / 0
21.02.2013, 08:58
    #38160119
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
jQuery - поиск элементов по указанному value
urukhayу которых есть атрибут required
Такое сразу классом нужно делать...
...
Рейтинг: 0 / 0
21.02.2013, 09:14
    #38160132
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
jQuery - поиск элементов по указанному value
urukhayмне нужно найти те элементы <input type="text"> внутри указанной формы, у которых есть атрибут required, и в которых не введено никакого значения
Как вариант...

Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
<!DOCTYPE html>
<html>
<head>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<!--
<link rel="stylesheet" type="text/css" href="tmp.css" />
-->
<style type="text/css">
.err {
	border: 1px solid red;
}
</style>
<script type="text/javascript">
$(document).ready(function (){
	$('input:button').click(function (){
		$('#frm .required').removeClass('err');
		$('#frm .required').filter(function (){
			if (this.value=='') return true;
			return false;
		}).addClass('err');
	});
});
</script>
</head>
<body>
<form id='frm'>
	<input type='text' class='required' />
	<input type='text' class='required' />
	<input type='text' class='required' />
	<input type='button' value='test' />
</form>
</body>
</html>
...
Рейтинг: 0 / 0
21.02.2013, 11:56
    #38160379
urukhay
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
jQuery - поиск элементов по указанному value
Спасибо большое! Работает :)
Только вот не пойму кое-чего (правда это не совсем по теме топика):
1. Зачем использовать removeClass/addClass, когда можно использовать $(elem).attr('new_class');
2. Зачем инициализировать событие нажатия на кнопку при загрузке документа ($(document).ready(function (){ $('input:button').click(function (){ ... }))), когда можно использовать обычный onClick: <input type="button" value="button" onClick="some_func">. Просто, на мой взгляд, первый вариант - это нагромождение кода. Ладно одна кнопка, а если их штук 50 таких в документе и у каждой есть обработчик по клику? Или это просто стиль такой и более современно?)
3. В чем все-таки я был неправ? Я в документации нашел вот такую штуку и пытался сделать по аналогии.
...
Рейтинг: 0 / 0
21.02.2013, 13:38
    #38160624
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
jQuery - поиск элементов по указанному value
urukhay1. Зачем использовать removeClass/addClass, когда можно использовать $(elem).attr('new_class');
А ты почитай букварь про те методы - оно глядишь и прояснится...
В общих чертах методы для работы с классами для того и сделаны, дабы подчеркнуть отличие атрибута class от всех остальных атрибутов...

urukhay2. Зачем инициализировать событие нажатия на кнопку при загрузке документа
Код: javascript
1.
($(document).ready(function (){ $('input:button').click(function (){ ... })))

, когда можно использовать обычный onClick:
Код: html
1.
<input type="button" value="button" onClick="some_func">

.
Тут так же можно много чего писать... Но суть в отделении скрипта от контента.

urukhayПросто, на мой взгляд, первый вариант - это нагромождение кода. Ладно одна кнопка, а если их штук 50 таких в документе и у каждой есть обработчик по клику? Или это просто стиль такой и более современно?)
В данном случае может и больше кода... Но при увеличении однотипных конструкций выигрыш будет в "другую сторону"...

urukhay3. В чем все-таки я был неправ? Я в документации нашел вот такую штуку и пытался сделать по аналогии.
Твой вариант даже синтаксически не верен. Там просто супнабор из " и '...
Притом выбран худший подход с атрибутом, нежели значением класса...
...
Рейтинг: 0 / 0
21.02.2013, 15:26
    #38160894
urukhay
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
jQuery - поиск элементов по указанному value
Ясно. Спасибо за помощь. Буду изучать букварь)
...
Рейтинг: 0 / 0
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / jQuery - поиск элементов по указанному value / 10 сообщений из 10, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]