这是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。
答案 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