灰色输出下拉框只选择一个单选按钮

时间:2012-02-19 22:32:34

标签: javascript

我是javascripts的新手,我正在尝试修改包含单选按钮和下拉菜单的表单上的代码,但是我想在选择只有一个选中的单选按钮(电子)时灰显下拉框。

物理(单选按钮) 图像(单选按钮)
电子(单选按钮)

箱数[下拉框]
我在盒子数量上方有3个单选按钮(下拉列表)。我希望选择电子(单选按钮)

时下拉选择框变灰
<input type="radio" name="radio" id="physical" value="physical">
              <label for="physical">Physical<br>
                <input type="radio" name="radio" id="image" value="image">
              Image               <br>
              <input type="radio" name="radio" id="electronic" value="electronic">
              Electronic                  

我希望在选择上面的电子设备时灰色显示

<select name="NumberofBoxes" onchange="javascript:this.form.action='RecordsTransmittalForm.asp';this.form.submit();">
                    <option value="">--select one--</option>
                    <%
                        for i = 1 to 100
                    %>
                        <%if clng(NumberofBoxes) = i then%>
                            <option value="<%=i%>" selected><%=i%></option>
                        <%else%>
                            <option value="<%=i%>"><%=i%></option>
                        <%end if%>
                    <%
                        next
                    %>
                </select>

2 个答案:

答案 0 :(得分:1)

您没有明确提及是否应该选择其他单选按钮来重新启用您的选择元素,但我认为这是您想要的,在这种情况下,以下内容将起作用:

<script>
document.body.onclick = function(e) {
    if (!e) e = window.event;
    var el = e.srcElement || e.target;
    if(el.tagName.toUpperCase()==="INPUT" && el.name === "radio")
        document.getElementById("NumberofBoxes").disabled =
                                                    el.value === "electronic";
};
</script>

不是最漂亮的方法(你应该测试并使用addEventListener()attachEvent()),这会使代码更加丑陋),但是因为你没有提供任何源代码html或我刚刚将一个onclick处理程序附加到主体上,测试所点击的元素是否是具有特定名称的输入(当然,组中的每个单选按钮都具有相同的名称)。如果是单击的无线电,则根据所点击的无线电的值启用或禁用指定的选择元素。

演示:http://jsfiddle.net/bcqcF/1/

答案 1 :(得分:0)

向单选按钮添加单击侦听器,如:

<input type="radio" ... onclick="this.form.StorageType.disabled = this.checked;">

当然你可以动态添加它,但是你没有提供足够的信息来做到这一点,上面只是一个例子。