2010-12-21 145 views
0

对于电台按钮:如何验证单选按钮和复选框?

$(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!'是否有任何好的教程可用于使用Jquerynewbie进行验证。

+0

你可以张贴在jsfiddle.net的完整HTML? – Chandu 2010-12-21 14:44:56

+0

什么类型的元素是#select-number? – 2010-12-21 14:46:12

回答

1

看起来您正在附加submit按钮的click事件(内部没有输入元素)。相反,重视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

当我将它与表单连接时,它不起作用。 – xasjaiod123 2010-12-21 14:48:53

0

jQuery的validation插件是相当不错的,易于上手。如果您是jQuery的新手,那么您最好尝试一下插件并专注于其他基础知识。你会发现一些验证,但这可以让你很快地验证(客户端)像专业人士。

1

我想这是因为你,如果一个无线电检查,而检查是否所有被检查没有看到

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

我想这是因为通过“这个”作为第二个参数$的( 'input:radio')函数,因为将这个传递给调用使得jQuery能够在这个上下文中进行搜索(我认为这是提交按钮)。 尝试......

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