0

我正在使用 Javascript 使我的复选框更大。这样做我使用图像一个黑色复选框和另一个带有选中复选框的图像。它就像真正的复选框一样工作。但是,当页面加载时,黑色复选框不会成功加载,除非我单击页面中的某个位置来调用它们。请在此处查看页面。

以下是我的 js 代码,我认为它会影响这一点:

var Custom = {
    init: function() {
        var inputs = document.getElementsByTagName("input"), span = Array(), textnode, option, active;
        for(a = 0; a < inputs.length; a++) {
            if((inputs[a].type == "checkbox" || inputs[a].type == "radio") && inputs[a].className == "styled") {
                span[a] = document.createElement("span");
                span[a].className = inputs[a].type;

                if(inputs[a].checked == true) {
                    if(inputs[a].type == "checkbox") {
                        span[a].style.background = unchecked;
                    } else {
                        span[a].style.background = unchecked;
                    }
                }
                inputs[a].parentNode.insertBefore(span[a], inputs[a]);
                inputs[a].onchange = Custom.clear;
                if(!inputs[a].getAttribute("disabled")) {
                    span[a].onmousedown = Custom.pushed;
                    span[a].onmouseup = Custom.check;
                } else {
                    span[a].className = span[a].className += " disabled";
                }
            }
        }
}

下面是我在表单加载时的图像: 在此处输入图像描述

这是我在任何地方单击时的页面: 在此处输入图像描述 已经定义了哪些其他函数和变量。因此,任何人都可以帮助我让它们在表单加载时显示吗?

4

2 回答 2

1

我不知道你为什么用那个

    if(inputs[a].checked == true) {
       if(inputs[a].type == "checkbox") {
           span[a].style.background = unchecked;
       } else {
           span[a].style.background = unchecked;
       }
   }

但是当我在http://checkintonight.freeiz.com/js/custom-form-elements.js中打开你的脚本时 尝试在 Custom.init() 的末尾调用函数 clear(),它可以工作

init: function() {
  //
  ...
  //
  this.clear();
}

对不起,我的英语不好

于 2012-08-23T10:26:43.197 回答
0

最终,我在我的 Javascript 代码中发现了一个错误。我else在函数中添加语句init()来测试复选框是否也未被选中。所以代码变成了下面这样:

if(inputs[a].checked == true) {
    if(inputs[a].type == "checkbox") {
          span[a].style.background = unchecked;
    }
} else {
    span[a].style.background = unchecked;
}

然后它起作用了!感谢所有审查并回答我的问题的人。

于 2012-08-23T15:29:44.197 回答