2012-02-28 2 views
1

У меня есть 2 переключателя для посещения. 'Да и нет'. Я хочу ошибку, если ни выбрано, ни нажата кнопка отправки.Проверка jquery - ошибка, если не выбрана радиокнопка

Я попытался

if (!$("input[name=attendance1]:checked").val()) { 
    alert('Nothing is checked!'); 
} 

но ошибка отображается только при входе в систему и не на кнопку Submit нажмите

+1

Вы перехватываете вызов отправки. Если вы этого не сделаете, тогда он просто представится как обычно. –

+0

как его перехватить. попробовал $ ("input: submit"). click (function() {infront of the – lukus

+1

ниже объясняет, как это сделать .... –

ответ

3

Для элементов <form> вы можете сделать это. Если вы отправляете с JavaScript с помощью $.ajax, попробуйте ответить icyrock.

$("#myForm").submit(function() { 
    if (!$("input[name=attendance1]:checked").val()) { 
    alert('Nothing is checked!'); 
    return false; 
    } 
}); 
+0

Я вставил ваш код, но все еще не работает. code @ http://pastebin.com/0ZvQV7dr. thanks – lukus

+0

Поместите код внутри '$ (document) .ready (function() {...});' –

+0

Вот jsfiddle, который показывает, как это делается: http://jsfiddle.net/p3syk/ –

1

Использование beforeSend - из документации:

у вас есть:

beforeSend (jqXHR, установки) Функция

Функция обратного вызова предварительно запрос, который может быть использован для изменения jqXHR (в JQuery 1.4.x, XMLHTTPRequest) объекта перед его отправкой. Используйте это для установки пользовательских заголовков и т. Д. Карты jqXHR и настройки передаются в качестве аргументов. Это событие Ajax. Возврат false в функции beforeSend отменяет запрос. Начиная с jQuery 1.5, опция beforeSend будет вызываться независимо от типа запроса.

Таким образом, вы можете в основном оповещать в beforeSend, а затем return false, чтобы прервать отправку.

Вот рабочий пример, который показывает часть вам нужно:

Надеется, что это помогает.

3

Вы не можете просто отказаться от кода на странице и работать с ним;). Прикрепите функцию проверки к событию submitjQuery по форме:

$('#formID').submit(function() { 
    if (!$("input[name=attendance1]:checked").val()) { 
     alert('Nothing is checked!'); 
     return false; // so form doesn't submit 
    } 
}); 
+0

Плюс для добавления return false, чтобы форма не отправлялась. –