复选框默认值“已检查”使用jquery 1.9.1给出未定义的值

时间:2013-10-31 13:13:39

标签: javascript jquery cordova-3

这是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);
        }
    }
}

这是Log:

  

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

有人可以帮助我为什么它给我不明确....      console.log(“if first condition”+ $('#isService')。defaultChecked);     我也试过 .is(:checked)和.prop都给了我undefined。

1 个答案:

答案 0 :(得分:1)

$("#isService")返回一个没有defaultChecked属性的jQuery对象,它是dom元素的一个属性。因此,您需要访问dom元素引用,在这种情况下,$("#isService")[0]会为您提供ID为isService的dom元素。

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

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

之后,才需要调用方法showCallNumber