Хотелось бы, чтобы не выбранные переключатели возвращали пустую строку - PullRequest
3 голосов
/ 03 мая 2011

У меня есть следующий HTML

<form id="create_form" name="create_form" action="" method="post">
<input name="type" id="type" value="individuel" type="radio" /> Individuel <br/>
<input name="type" id="type" value="course"     type="radio" /> Course <br/>

<button class="n" type="submit">Create</button>
</form>

и когда я получаю значение переключателей, когда ни одна из них не выбрана, мой скрипт JQuery / Ajax возвращает первую переключатель.

$(document).ready(function(){
    $("form#create_form").submit(function() {
    var type = $('input:radio[name=type]:checked').val();
        ...

Я бы хотел, чтобы пользователи вынуждены были выбирать, а не просто по умолчанию.

Как это сделать?

Обновление

Я думаю, что

$(document).ready(function(){
    $("form#create_form").submit(function() {
    var type = $('input:radio[name=type]:checked').val();

означает получить значения переключателей только в форме с id="create_form".

Но поскольку у меня были формы ниже (с <form id="something_else") и переключатели в этих формах также с name="type", он извлек это значение.

Изменение name=type на name=cname в html и JQuery решило проблему.

Звучит как ошибка в JQuery, не так ли?

Ответы [ 2 ]

3 голосов
/ 03 мая 2011

Попробуйте определить переменную следующим образом (чтобы получить пустую строку):

var type = $('input:radio[name=type]:checked').val() || '';

Хммм, хорошо, чтобы ответить на вопрос о выборе пользователя ... попробуйте вместо этого:

var type = $('input:radio[name=type]:checked').val();
if (typeof type === 'undefined') {
  alert('You must make a choice!'); 
  return false;
}
2 голосов
/ 03 мая 2011

если

( ! $("input:radio").is(':checked') )

не работает?

Вы также можете попробовать вот так:

var is_checked = true;
$('input:radio').each(function(){
   is_checked = is_checked && $(this).is(':checked');
});
if ( ! is_checked );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...