2

私はワードプレスのプラグインに取り組んでいます。管理パネルには、フィールドセットとチェックボックスがあります。チェックボックスをオン/オフして、フィールドセットを無効/有効に切り替えたいと思います。ここに私がこれまでに持っているものがありますが、うまくいかないようです。

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を選択すると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 に答える