Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 无论询问的单选按钮是否被选中,该检查为什么为真?_Jquery_Radio Button_Html Select - Fatal编程技术网

Jquery 无论询问的单选按钮是否被选中,该检查为什么为真?

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

我使用这个jQuery来检查当用户选择dropdownlist时是否选中了上面两个单选按钮中的一个

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