jQuery单选按钮未选中错误

我正在尝试使用jQuery进行表单validation,我发现了一些我无法理解的错误。

我有两个单选按钮

Male Female 

并validation是否检查了这些

 if(! $('#gender').attr('checked')){ alert('Please select your gender'); return false; } 

问题是,当我检查第一个单选按钮并提交表单时,我没有收到警报,但当我检查第二个单选按钮(女性)并提交表单时,我收到“请选择您的性别”的提醒。

首先,正如注释中提到的j08691,没有两个HTML元素可以具有相同的id属性。 其次,将函数checked为属性,而不是属性。 使用$("#gender").prop("checked")代替; 这将返回truefalse

你可以用这个:

 if(!$('[name="gender"]:checked').size()) alert('Please select your gender'); 

的jsfiddle

JavaScript的ID检测只是匹配ID的第一个实例,并且不会继续搜索,因为id属性是唯一的

要解决您的问题,请首先删除这些重复的ID属性,然后从以下位置更改您的jQuery选择器:

 $('#gender') 

至:

 $('[name="gender"]') 

然后,您可以将其与jQuery的:checked选择器结合使用,以确定是否选中了其中一​​个radio元素:

 if ( $('[name="gender"]:checked').length === 1 ) { alert('Please select your gender'); return false; } 

试试这个

 var isChecked = $('[name="gender"]:checked').length; if(isChecked < 1) { alert("please Select your gender"); } 

JSFiddile