Как проверить переключатель и флажок? - PullRequest
0 голосов
/ 21 декабря 2010

Для переключателя:

$(document).ready(function() {
        $('#select-number').click(function() {
                if ($('input:radio', this).is(':checked')) {
                    return true;
                } else {
                    alert('Please select something!');
                    return false;
            }
        });

    });

Работает нормально, если переключатель не выбран.Но когда я выбираю переключатель и отправляю форму, тогда он также дает мне предупреждающее сообщение 'Please select something!' Есть ли какие-нибудь хорошие учебники, доступные для проверки, используя Jquery для newbie.

Ответы [ 5 ]

1 голос
/ 21 декабря 2010

Я думаю, это потому, что вы не видите, проверен ли один радиоприемник, а скорее проверяет, все ли проверены

if ($(this).find("input:radio:checked").length > 0) {
    return true;
} 
else {
    alert('Please select something!');
    return false;
}
1 голос
/ 21 декабря 2010

Похоже, что вы присоединяетесь к событию click кнопки submit (внутри элемента этого элемента нет входов). Вместо этого присоедините к событию submit форму:

$(document).ready(function() {
    $('#formID').submit(function() {
        if ($('input:radio', this).is(':checked')) {
            return true;
        } else {
            alert('Please select something!');
            return false;
        }
    });
});

Это имеет преимущество в том, что можно перехватить все пути, которыми может быть отправлена ​​<form>, а также искать кнопки input:radio в правильном месте. Вы также можете сократить / упростить это далее:

$(function() {
  $('#formID').submit(function() {
    if ($(this).find('input:radio:checked').length == 0) {
      alert('Please select something!');
      return false;
    }
  });
});
0 голосов
/ 21 декабря 2010
0 голосов
/ 21 декабря 2010

Я думаю, это из-за передачи 'this' в качестве второго параметра функции $ ('input: radio'), потому что передача этого вызова вызывает jQuery для поиска в контексте этого (который я предполагаю, что Submitкнопка).Попробуйте это ...

$(document).ready
 (
  function() 
  {         
   $('#select-number').click
   (
    function() 
    {                 
     if ($('input:radio').is(':checked')) 
     {                     
      return true;                 
     } 
     else 
     {                     
      alert('Please select something!');                     
      return false;             
     }         
    }
   );      
  }
 ); 
0 голосов
/ 21 декабря 2010

Плагин jQuery validation довольно хорош и с ним легко начать. Если вы новичок в jQuery, вам, вероятно, лучше попробовать плагин и сосредоточиться на других основах. По ходу дела вы придумаете некоторую проверку, но это может очень быстро сделать вас (на стороне клиента) профессионалом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...