Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 07.06.2017, 11:49
Аспирант
Отправить личное сообщение для SkyRewir Посмотреть профиль Найти все сообщения от SkyRewir
 
Регистрация: 07.06.2017
Сообщений: 47

Обработка checkbox-ов и комментариев
Добрый день!
Уважаемые форумчане помогите пожалуйста
На сайте есть форма

<form action = "rrr.php" method = "POST">
  <div class="col-md-12">
            <div class="input-group">            
              <span class="input-group-addon">
                <span class="col-md-8"><input type="checkbox" name="fo_1">Не хватило информации об услуге</span>
                <span><input type="text" class="form-control" name="fo_1_1"></span>
              </span>            
            </div>
          </div>
          <div class="col-md-12">
            <div class="input-group">            
              <span class="input-group-addon">
                <span class="col-md-8"><input type="checkbox" name="fo_2">Не хватило информации о компании</span>
                <span><input type="text" class="form-control" name="fo_2_2"></span>
              </span>            
            </div>
          </div>
          <div class="col-md-12">
            <div class="input-group">            
              <span class="input-group-addon">
                <span class="col-md-8"><input type="checkbox" name="fo_3">Не нашел(-шла) услугу, которую искала</span>
                <span><input type="text" class="form-control" name="fo_3_3"></span>
              </span>            
            </div>
          </div>
       <div class="col-md-12">
            <div class="input-group">            
              <span class="input-group-addon">
                <span class="col-md-8"><input type="checkbox" name="fo_4">Компания не вызывает доверия</span>
              </span>            
            </div>
          </div>
<p>Введите Ваш email<input type="email" class="form-control" name="email_fo" required placeholder="Ведите ваш email"></p>
<button type="submit" class="btn btn-default">Отправить</button>
</form>


Подскажите как реализовать функцию проверки формы:
Человек должен заполнить форму, может выбрать несколько checkbox-ов и написать к ним комментарии (если нужно), если не заполнен и не выбран не один checkbox, по нажатию на кнопку,выводило бы сообщение "Выберите один из пунктов"
Если есть хотя бы один заполненный checkbox, форма была отправлена на обработку
Спасибо!
Ответить с цитированием
  #2 (permalink)  
Старый 07.06.2017, 12:23
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Ну если проверка у адреса нативная, значит просто добавить/убрать required и других полей.

$(function() {
    $('input:checkbox').change(function() {
        $(this).closest('.input-group-addon').find('input:text').prop('required', this.checked).attr('placeholder', this.checked ? 'Заполните' : '')
    });
});


А вот на сервере проверять обязательно.
Ответить с цитированием
  #3 (permalink)  
Старый 07.06.2017, 13:10
Аспирант
Отправить личное сообщение для SkyRewir Посмотреть профиль Найти все сообщения от SkyRewir
 
Регистрация: 07.06.2017
Сообщений: 47

Сообщение от laimas Посмотреть сообщение
Ну если проверка у адреса нативная, значит просто добавить/убрать required и других полей.

$(function() {
    $('input:checkbox').change(function() {
        $(this).closest('.input-group-addon').find('input:text').prop('required', this.checked).attr('placeholder', this.checked ? 'Заполните' : '')
    });
});


А вот на сервере проверять обязательно.
Спасибо за ответ и скрипт
А можно сделать так, что если в форме ничего не заполнено
не выбраны чекбоксы , выводило выберите один из вариантов?
Ответить с цитированием
  #4 (permalink)  
Старый 07.06.2017, 13:20
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Можно. Не удаляя данный обработчик, добавить обработчик отправки формы:

$('form').submit(function() {
    if(!$(this).find('input:checked').length) {
        alert('Выберите один из вариантов');
        return false
    }
})


PS. Если один из вариантов, то это не checkbox, а radio тогда.

Последний раз редактировалось laimas, 07.06.2017 в 13:32.
Ответить с цитированием
  #5 (permalink)  
Старый 07.06.2017, 14:18
Аспирант
Отправить личное сообщение для SkyRewir Посмотреть профиль Найти все сообщения от SkyRewir
 
Регистрация: 07.06.2017
Сообщений: 47

Сообщение от laimas Посмотреть сообщение
Можно. Не удаляя данный обработчик, добавить обработчик отправки формы:

$('form').submit(function() {
    if(!$(this).find('input:checked').length) {
        alert('Выберите один из вариантов');
        return false
    }
})


PS. Если один из вариантов, то это не checkbox, а radio тогда.
Спасибо большое! Все отлично работает
Ответить с цитированием
  #6 (permalink)  
Старый 09.06.2017, 12:19
Аспирант
Отправить личное сообщение для SkyRewir Посмотреть профиль Найти все сообщения от SkyRewir
 
Регистрация: 07.06.2017
Сообщений: 47

Подскажите, а если на сайте есть ещё одна форма и скрипт
$('form').submit(function() {
	    if(!$(this).find('input:checked').length) {
	        alert('Выберите один из вариантов');
	        return false
	    }
	})

её захватывает, но это не нужно. Как это возможно убрать?
Ответить с цитированием
  #7 (permalink)  
Старый 09.06.2017, 12:36
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Заменить $('form') на конкретный селектор конкретной формы. Например, если форме которую нужно обрабатывать этим событием определить id="myform", то селектор будет таким: $('#myform').
Ответить с цитированием
  #8 (permalink)  
Старый 09.06.2017, 12:44
Аспирант
Отправить личное сообщение для SkyRewir Посмотреть профиль Найти все сообщения от SkyRewir
 
Регистрация: 07.06.2017
Сообщений: 47

Спасибо!
Ответить с цитированием
  #9 (permalink)  
Старый 09.06.2017, 14:57
Аспирант
Отправить личное сообщение для SkyRewir Посмотреть профиль Найти все сообщения от SkyRewir
 
Регистрация: 07.06.2017
Сообщений: 47

Сообщение от laimas Посмотреть сообщение
Ну если проверка у адреса нативная, значит просто добавить/убрать required и других полей.

$(function() {
    $('input:checkbox').change(function() {
        $(this).closest('.input-group-addon').find('input:text').prop('required', this.checked).attr('placeholder', this.checked ? 'Заполните' : '')
    });
});
Подскажите пожалуйста,а как здесь задать id или class формы?
Что бы этой функцией обрабатывалась одна форма на странице
Ответить с цитированием
  #10 (permalink)  
Старый 09.06.2017, 15:21
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

$('здесь_селектор_формы input:checkbox')

или, что быстрее для разбора

$('селектор_формы).find('input:checkb ox')

PS. А лучше так:

$('form_selector').submit(e) {
     //код
}).find('input:checkbox').change(function() {
    //код
});

Последний раз редактировалось laimas, 09.06.2017 в 15:31.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Калькулятор с вариантом значений. dzho Общие вопросы Javascript 45 06.08.2017 03:54
Обработка полей checkbox ilgiz Events/DOM/Window 1 24.07.2014 09:53
Обработка checkbox DarkRevenger AJAX и COMET 2 04.07.2011 17:14
Обработка ДИНАМИЧЕСКИ созданных checkbox Tankiro1 Общие вопросы Javascript 1 04.07.2009 02:56
Обработка checkbox Rok Общие вопросы Javascript 4 30.06.2009 10:57