Onclick的复选框不工作Javascript

时间:2016-04-01 19:04:38

标签: javascript html checkbox

我在复选框上启用了3个文本框,并在取消选中复选框时禁用它们,但不知道为什么代码无效。默认情况下,使用未选中的复选框禁用它们。

<div class="form-group">
    <label class="col-sm-2 control-label" for="input-order-status">
        <?php echo "Modify Default Package Dimensions:"; ?>
    </label>
    <div class="col-sm-10">
        <input class="form-control" type="checkbox" name="Modify_Default_Dimensions" value="1" onclick="checkboxChecked(this);">
    </div>
</div>

<div class="form-group">
    <label class="col-sm-2 control-label" for="input-order-status">
        <?php echo "Depth:"; ?>
    </label>
    <div class="col-sm-10">
        <input class="form-control hide_textbox" type="text" id="prod_depth" class="" name="dhl_product_depth" value="12" disabled/> cm
    </div>
</div>

<div class="form-group">
    <label class="col-sm-2 control-label" for="input-order-status">
        <?php echo "Width:"; ?>
    </label>
    <div class="col-sm-10">
        <input class="form-control hide_textbox" type="text" id="prod_width" name="dhl_product_width" value="34" disabled/> cm
    </div>
</div>

<div class="form-group">
    <label class="col-sm-2 control-label" for="input-order-status">
        <?php echo "Height:"; ?>
    </label>
    <div class="col-sm-10">
        <input class="form-control hide_textbox" type="text" id="prod_height" name="dhl_product_height" value="123" disabled/> cm
    </div>
</div>
function checkboxChecked(clickedBox) {
    var textbox_hide = document.getElementsByClassName('hide_textbox');
    //alert(textbox_hide.length);
    for(var i = 0; i < textbox_hide.length; i++) {
        textbox_hide[i].disabled = !clickedBox.checked;
    }
}

Fiddle

1 个答案:

答案 0 :(得分:0)

您的代码运行正常。问题是您在文本框class元素上有两个input属性,因此忽略了第二个(包含您要查找的类)。

<input class="form-control hide_textbox" type="text" id="prod_width" name="dhl_product_width" value="34" disabled/>

请注意,class属性在上面的示例中有两个值。

您的小提琴也未正确设置,因为JS代码需要放在文档的<head />中。

Working example