复选框默认值“选中”,使用 jquery 1.9.1 给出未定义的值

checkbox Default Value "Checked" giving undefined value using jquery 1.9.1

本文关键字:未定义 jquery 默认值 选中 使用 复选框      更新时间:2023-09-26

这里是jquery代码:

    var htmlCopyDialog = "";
   if ($("#main7 option:selected").text() != "Service Only") {

我在检查条件和调用函数后将复选框设置为默认选中:

if(maintainCopyCheckbox)
        {  
      htmlCopyDialog += '<input type="checkbox" name="isService" id="isService" checked ="checked" data-theme="d"/>';
     htmlCopyDialog += '<label for="isService" >This is to be a service quote</label>';
      showCallNumber(maintainCopyCheckbox);
      }
      else
        {
    htmlCopyDialog += '<input type="checkbox" onclick="showCallNumber(maintainCopyCheckbox);" name="isService" id="isService" data-theme="d"/>';
      htmlCopyDialog += '<label for="isService" >This is to be a service quote</label>';
           }
    }
     htmlCopyDialog += '</div>';

在功能中:

var setFlagForCheckbox = 0;
function showCallNumber(maintainCopyCheckbox1) {
    console.log("showCallNumber method call" + maintainCopyCheckbox1);
    if (maintainCopyCheckbox1) {
        console.log("if first condition" + $('#isService').defaultChecked);
        if ($("#isService").defaultChecked) {
            console.log("inside if condition" + maintainCopyCheckbox1);
        }
    }
}

这是日志:

11-03 18:05:09.820:I/Web 控制台 (8324):如果第一个条件未定义 在 file:///android_asset/www/js/survey/infoqueries.js:1062

有人可以帮助我为什么它给我未定义.... console.log("if first condition" + $('#isService').defaultChecked); 我也尝试过.is(:checked)和.prop都给了我未定义。

$("#isService")返回一个没有defaultChecked属性的jQuery对象,它是dom元素的属性。所以你需要访问 dom 元素引用,在这种情况下,$("#isService")[0]给你 id isService 的 dom 元素

console.log("if first condition" + $("#isService")[0].defaultChecked);
if ($("#isService")[0].defaultChecked) {

更新:看起来有一个非常基本的问题,因为 showCallNumber 方法是在将底层 html 元素区域添加到 dom 之前调用的,因此$("#isService")不会返回任何元素。只有在将 html 结构添加到 dom 结构之后,才需要调用该方法showCallNumber