这里是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