Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 16.03.2015, 17:31
Новичок на форуме
Отправить личное сообщение для meskalin Посмотреть профиль Найти все сообщения от meskalin
 
Регистрация: 16.03.2015
Сообщений: 2

Проверка checkbox
Добрый день. Делаю проверку, что бы был выбран хотя бы один чекбокс в форме. Сама форма обрабатывается через ajax

Код кнопки
<input type="button" value="Apply Filters" id="sbt" onclick="AjaxFormRequest('result_div_id', 'form_id', 'form.php')" />


Код обработки

<script type="text/javascript">
            function AjaxFormRequest(result_id,form_id,url) {
                jQuery.ajax({
                    url:  url, 
                    type:     "POST", 
                    dataType: "html", 
                    data: jQuery("#"+form_id).serialize(), 
                    success: function(response) { 
                    document.getElementById(result_id).innerHTML = response;
                },
                error: function(response) { 
                document.getElementById(result_id).innerHTML = "Error";
                }
             });
          
		}
   </script>
          
		}


И собственно проверка на наличие хотя бы одного выбранного чекбокса

<script language="javascript">
 $(document).ready(function(){
  $('#sbt').click(function(e){
     e.preventDefault();
    var obj = $("input:checkbox:checked");
    if( !obj[0] ){
	  alert('Please select category for display');
	return false;
    }
  });
});
</script>


Собственно окошко с предупреждением появляется, но данные все равно отправляются. Собственно вопрос почему return false не срабатывает?
Ответить с цитированием
  #2 (permalink)  
Старый 16.03.2015, 18:27
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от meskalin
Собственно вопрос почему return false не срабатывает?
return false в обработчике jQuery останавливает всплытие события вверх по DOM'у, а так же отменяет действие браузера по умолчанию. В случае type=button действия по умолчанию нет никакого - это просто кнопка, сама по себе она ничего не делает.
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #3 (permalink)  
Старый 16.03.2015, 18:29
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от meskalin
language="javascript"
Устаревший атрибут. Вообще не играет никакой роли. type=text/javascript тоже можно удалить.

Сообщение от meskalin
!obj[0]
лучше !obj.length , так как обращение к несуществующему свойству нежелательно.
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #4 (permalink)  
Старый 18.03.2015, 08:38
Профессор
Отправить личное сообщение для krasovsky Посмотреть профиль Найти все сообщения от krasovsky
 
Регистрация: 21.12.2012
Сообщений: 869

Дык, ты не checkbox а radio поставь и не надо никаких проверок
Ответить с цитированием
  #5 (permalink)  
Старый 19.03.2015, 12:05
Новичок на форуме
Отправить личное сообщение для meskalin Посмотреть профиль Найти все сообщения от meskalin
 
Регистрация: 16.03.2015
Сообщений: 2

В общем объединил эти два скрипта в один и запахало. Кстати я так понял при ajax запросе не важно submit или button прерывается сам ajax. Всем спасибо.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проверка CheckBox Nicki Элементы интерфейса 4 03.03.2013 21:48
Проверка Checkbox на checked Anton24322224 Общие вопросы Javascript 5 18.10.2012 23:27
Проверка, выбран ли checkbox, если обращаюсь к нему через $(this['id']) SkaN jQuery 1 02.03.2012 13:55
Вывод выбранных данных и проверка checkbox MasterHrust Javascript под браузер 3 28.09.2011 17:44
Проверка статуса checkbox при xmlhttprequest vvsh AJAX и COMET 3 06.08.2009 15:51