【问题标题】:How to validate the radio button and checkbox?如何验证单选按钮和复选框?
【发布时间】:2010-12-21 14:43:02
【问题描述】:

对于单选按钮:

$(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

【问题讨论】:

  • 你能在 jsfiddle.net 上发布完整的 html 吗?
  • #select-number 是什么类型的元素?

标签: jquery validation


【解决方案1】:

看起来您正在附加到submit 按钮的click 事件(that 元素内没有输入)。而是附加到表单的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;
    }
  });
});

【讨论】:

  • @xasjaiod123 - 你能显示你的标记吗?没有它很难调试。
  • 看来他只是复制/粘贴了您的代码..所以如果是这种情况,如果您的页面中没有其他表单,那么对于@xasjaiod123,则使用$('#formID') 而不是#('form') :-)..无论如何,如果您想从 Nick 那里获得最大收益,请添加您的标记;)
【解决方案2】:

我认为这是因为您没有看到是否检查了单个无线电,而是检查了是否全部检查

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

【讨论】:

  • 这个逻辑相当于原来的:)
  • 现在正在尝试想出一些 jsfiddle,但我不确定他的 HTML 是什么样子
【解决方案3】:

jQuery validation 插件非常好并且易​​于上手。如果您是 jQuery 新手,最好尝试一下该插件并专注于其他基础知识。您会在进行过程中进行一些验证,但这可以让您像专业人士一样快速验证(客户端)。

【讨论】:

    【解决方案4】:

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

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

    【讨论】:

      【解决方案5】:

      【讨论】:

        猜你喜欢
        • 2018-02-19
        • 2012-01-20
        • 2019-02-02
        • 2011-11-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-05-03
        相关资源
        最近更新 更多