如何更改HTML表单中某些元素的颜色

时间:2013-01-22 03:40:13

标签: javascript html css

根据选择的单选按钮,我需要启用或禁用整个复选框选项列表。当选择要求禁用时,我正在使用它:

function radioSelectDNC() {
    for (i = 3; i < document.addPNtoDNC.elements.length - 1; i++) {
        document.addPNtoDNC[i].disabled=true;      // this is working
        document.addPNtoDNC[i].style.color="blue"; //this line is not working
    } 

禁用有效,但复选框选项文本的颜色不起作用。这是一个很长的形式,但为了以防万一,这是我如何列出复选框选项:

            <label><input type="checkbox" name="Campaign" value="Value1">Value1<br></label>
            <label><input type="checkbox" name="Campaign" value="Value2">Value2<br></label>
            <label><input type="checkbox" name="Campaign" value="Value3">Value3<br></label>

我使用的是正确的财产吗?我在哪里可以找到属性列表?

哦,拜托,以防万一,不要给我jQuery。我刚刚开始这个,每次我搜索并找到jQuery答案时,我的头开始旋转。其中一天。

2 个答案:

答案 0 :(得分:1)

您似乎正在尝试修改<input>的颜色属性,而不是您想要的<label>标记。 您必须更改document.addPNtoDNC[i]部分以引用标签(不知道您在这里做了什么)。 document.addPNtoDNC[i].parentNode应该有效,因为输入标记位于标记1中。

答案 1 :(得分:1)

我认为你在自己身上做的比实际更难。你应该做的是为class创建一个CSS选择器,然后在通过简单的javascript检查复选框时应用该类。同样,您也可以在取消选中该复选框时删除该类。我知道你要求一个非JQuery解决方案,所以在这里看一下:

Change an element's class with JavaScript

这是通过纯Javascript添加和删除类的方法。它看起来并不太糟糕,但是做到这一点肯定看起来很麻烦?

那是因为它确实是JQuery非常好的原因。我不会给你一个JQuery答案,因为你说不,但我仍然会推荐它。你可以随意逃离JQuery,但是如果你花一小时的时间学习JQuery或Prototype或其他什么,你会发现你不需要做那么多的工作。 JQuery有一个很好的toggleClass()函数,它让你的生活更轻松。希望这可以帮助。如果您需要帮助,请不要害怕。这包括学习JQuery。