Jquery 无论询问的单选按钮是否被选中,该检查为什么为真?
我使用这个jQuery来检查当用户选择dropdownlist时是否选中了上面两个单选按钮中的一个Jquery 无论询问的单选按钮是否被选中,该检查为什么为真?,jquery,radio-button,html-select,Jquery,Radio Button,Html Select,我使用这个jQuery来检查当用户选择dropdownlist时是否选中了上面两个单选按钮中的一个 $(document).on("change", '[id$=ddlPayToIndividual]', function () { . . . // unrelated code elided for brevity var $uscitizenyes = $('[id$=rbUSCitizenOrPermResY]'); var $uscitizenno = $('[i
$(document).on("change", '[id$=ddlPayToIndividual]', function () {
. . . // unrelated code elided for brevity
var $uscitizenyes = $('[id$=rbUSCitizenOrPermResY]');
var $uscitizenno = $('[id$=rbUSCitizenOrPermResN]');
if (!$uscitizenyes.checked && !$uscitizenno.checked) {
alert('You must select above whether payee is a US Citizen or Permanent Resident or not');
}
});
我可以想象,只有当两个单选按钮都未选中时,我才会看到警报,但无论我在DropDownList/html选择器中更改选择时如何,我都会看到警报。为什么?
.checked
是一个DOM属性,但是$uscitizenyes
和$uscitizenno
是jQuery对象,而不是DOM元素。您需要使用jQuery方法。使用:
if (!$uscitizenyes.is(":checked") && !$uscitizenno.is(":checked")) {
由于jQuery对象没有
.checked
属性(一般来说,jQuery不使用属性,它几乎用方法做所有事情),因此您的代码总是认为这两个框都未选中。您在开发人员控制台中查看了吗?您比我先找到了答案,所以我要补充的是,之所以总是显示警报,是因为$uscitizenyes.checked
未定义,而且!未定义的
为true,if语句相当于if(true&&true)