jQuery单选按钮未选中错误
我正在尝试使用jQuery进行表单validation,我发现了一些我无法理解的错误。
我有两个单选按钮
Male Female
并validation是否检查了这些
if(! $('#gender').attr('checked')){ alert('Please select your gender'); return false; }
问题是,当我检查第一个单选按钮并提交表单时,我没有收到警报,但当我检查第二个单选按钮(女性)并提交表单时,我收到“请选择您的性别”的提醒。
首先,正如注释中提到的j08691,没有两个HTML元素可以具有相同的id
属性。 其次,将函数checked
为属性,而不是属性。 使用$("#gender").prop("checked")
代替; 这将返回true
或false
。
你可以用这个:
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"); }