2

我正在开发一个 wordpress 插件。在管理面板中,我有一个字段集和一个复选框。我想通过选中/取消选中复选框在禁用/启用之间切换字段集。这是我到目前为止所拥有的,但它似乎不起作用。

HTML

<!-- This is the checkbox -->
<label>
    <input class="checkbox" type="checkbox" onchange="toggleDisable(this);" id="check"/> 
    enable
</label>

<!-- This is the field set -->
<fieldset id="field_set">
    <legend>Field-Set</legend>

    <label for="sel">selectBox</label>
    <select id="sel">
        <option value="posts">Posts</option>
        <option value="terms">Terms</option>
    </select>

    <label for="1">input</label>
    <input type="text" value="text" id="1" />

    <label for="2">input</label>
    <input type="text" value="text" id="2" />

</fieldset>

JavaScript

function toggleDisable(checkbox) {
    var toggle = document.getElementById("field_set");
    checkbox.checked ? toggle.disabled = false : toggle.disabled = true;
}

该事件没有被触发,并且字段集没有任何反应。
哦,这是一个Fiddle

4

2 回答 2

1

试试这个:http: //jsfiddle.net/eVqL4/

function toggleDisable(checkbox) {
    var toggle = document.getElementById("field_set");
    $(toggle).prop('disabled', $(checkbox).prop('checked'));
}
于 2013-01-23T05:52:33.467 回答
1

你的代码没问题。问题出在你的小提琴上。当您选择onLoad并且否No library时,这意味着您的 javascript 代码将被放置在window.onload闭包内:

window.onload = function() { /* your code will go here */ }

因此,在这种情况下,您定义的函数将成为局部范围函数,该函数不适用于页面的其余部分。因此,要解决您的问题,您只需选择no wrap (head)例如。看到这个:

http://jsfiddle.net/AY3Ka

于 2013-01-23T05:57:18.393 回答