0

这是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):如果第一个条件未在文件中定义:///android_asset/www/js/survey/infoqueries.js:1062

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

4

1 回答 1

1

$("#isService")返回一个没有该defaultChecked属性的 jQuery 对象,它是 dom 元素的一个属性。因此,您需要访问 dom 元素引用,在本例$("#isService")[0]中为您提供带有 id 的 dom 元素isService

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

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

于 2013-10-31T13:16:22.157 回答