如何验证单选按钮和复选框?

时间:2010-12-21 14:43:02

标签: jquery validation

对于单选按钮:

$(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 个答案:

答案 0 :(得分:1)

看起来您正在附加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;
    }
  });
});

答案 1 :(得分:1)

我认为这是因为您没有看到是否检查了单个收音机,而是检查是否所有收音机都已检查

if ($(this).find("input:radio:checked").length > 0) {
    return true;
} 
else {
    alert('Please select something!');
    return false;
}

答案 2 :(得分:0)

jQuery validation插件非常好用且易于上手。如果你是jQuery的新手,你可能最好不要试用插件并专注于其他基础知识。您可以随时找出一些验证,但这可以让您像专业人士一样快速验证(客户端)。

答案 3 :(得分:0)

我认为这是因为将'this'作为第二个参数传递给$('input:radio')函数,因为将此传递给调用会使jQuery在此上下文中进行搜索(我假设是提交按钮)。 试试这个......

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

答案 4 :(得分:0)

相关问题