множественные элементы
Есть html страница, jQuery
На странице десяток “box”: <div class=”box”> <input value=”Произвольно для каждого ”> <button>Отправить</button> </div> Как реализовать проверку, что что-то ввели в input? Вернее по клику на любом button (‘.box button’) – их на странице много, проверили, что пользователь ввел текст в конкретный input. Если ввод сделан -> AJAX – PHP –AJAX выдали ответ в «своем» box Если ввода не было – вывели сообщение «Отправка недоступна» в «своем» box Подскажите куда копать? |
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<script src="http://code.jquery.com/jquery-1.11.0.min.js"></script>
</head>
<body>
<div class="box">
<input value="Произвольно для каждого ">
<button>Отправить</button>
</div>
<div class="box">
<input value="Произвольно для каждого ">
<button>Отправить</button>
</div>
<div class="box">
<input value="Произвольно для каждого ">
<button>Отправить</button>
</div>
<script>
$(function() {
$('.box button').on('click', function() {
var $parent = $(this).parent();
if ($(this).prev().val() !== '') {
$parent.find('span.errspan').remove();
alert('ajax');
} else {
if (!$parent.find('span.errspan').length) {
$parent.append( $('<span class="errspan">error</span>').css('color', 'red') );
}
}
});
});
</script>
</body>
</html>
|
Спасибо за ответ, но не то совсем.
Есть input, с подсказкой, что нужно в него ввести. Пока пользователь не ввел что-то свое - отправлять нельзя. Смотрим на пример ваш. Сразуже - Клик по "Отравить" - получаем "ajax" - типо данные введены верно, отправляем запрос. Это уже ошибка. данные не введенны пользователем, только клик, а запрос уже пошел.
01 <!DOCTYPE HTML>
02 <html>
03 <head>
04 <meta charset="utf-8">
05 <script src="http://code.jquery.com/jquery-1.11.0.min.js"></script>
06 </head>
07 <body>
08 <div class="box">
09 <input value="123">
10 <button>Отправить</button>
11 </div>
12
13 <div class="box">
14 <input value="456">
15 <button>Отправить</button>
16 </div>
17
18 <div class="box">
19 <input value="789">
20 <button>Отправить</button>
21 </div>
22
23 <script>
24 $(function() {
25
26 $('.box button').on('click', function() {
27 var $parent = $(this).parent();
28 if ($(this).prev().val() !== '') {
29 $parent.find('span.errspan').remove();
30 alert('ajax');
31 } else {
32 if (!$parent.find('span.errspan').length) {
33 $parent.append( $('<span class="errspan">error</span>').css('color', 'red') );
34 }
35 }
36 });
37
38 });
39 </script>
40
41 </body>
42 </html>
Как тут кнопочку "Просмотреть прикрутить?" Уточняю проблему: Немного скорректировал html код. Считаем, что html больше добавлять нельзя. Если ничего не ввели - но кликнули - сообщение об ошибке в своем диве выводим. Если что-то ввели , или один символ убрали (123 != 12 ) отправляем AJAX |
Цитата:
Цитата:
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<script src="http://code.jquery.com/jquery-1.11.0.min.js"></script>
</head>
<body>
<div class="box">
<input value="123">
<button>Отправить</button>
</div>
<div class="box">
<input value="456">
<button>Отправить</button>
</div>
<div class="box">
<input value="789">
<button>Отправить</button>
</div>
<script>
$(function() {
$('.box button').on('click', function() {
var $parent = $(this).parent();
var val = $(this).prev().val();
if (val !== $(this).prev().attr('value') && val !== '') {
$parent.find('span.errspan').remove();
alert('ajax');
} else {
if (!$parent.find('span.errspan').length) {
$parent.append( $('<span class="errspan">error</span>').css('color', 'red') );
}
}
});
});
</script>
</body>
</html>
|
YES! Про примеру - все работает, с кодом надеюсь разберусь.
СПАСИБО! |
| Часовой пояс GMT +3, время: 22:38. |