0

一連のチェックボックスで値を取得しようとしています:

$(document).ready(function() {
    var folders = document.getElementsByName('note-behaviour-folder-add[]'); 
    for(var x = 0; x < folders.length; x++){
        if ((folders[x].type === "checkbox") && (folders[x].checked)) {
            alert("Yes!");
        }
    }
});

名前付き要素にはデータがありますが、上記のコードはデータを取得していないようです。jQueryの代替も試しました:

var folders = $("[name='note-behaviour-folder-add[]']");

しかし、それはおかしなことになり、アプリケーション内のすべてのものを手に入れました。

HTML自体については:

<div class="note-behaviour-folder-box" id="note-behaviour-folder-box-2">
    <input type="checkbox" id="note-behaviour-folder-item-2" name="note-behaviour-folder-add[2]" value="2" checked="checked">Plot
    <dl>
        <dt><label for="note-behaviour-folder-item-select-2">Behaviours</label></dt>
        <dd><select name="note-behaviour-folder-item-select-2" class="chzn-select">
            <option value="1">List</option>
            <option value="2">Paragraph</option>
            <option value="3" selected="selected">Chapter</option>
        </select></dd>
    </dl>
</div>

何か案は?

4

1 に答える 1

3

あなたが使用しているので:

<input ... name="note-behaviour-folder-add[2]" value="2" checked="checked">Plot
                                           ^-----

それで:

var folders = $("[name='note-behaviour-folder-add[]']");

うまくいきません。使用する:

var folders = $("[name^='note-behaviour-folder-add']");
                      ^----                       ^---- notice the differences

これはAttribute Starts With Selector[name^="value"]と呼ばれます。

これ<input name="note-behaviour-folder-add[1]" ...>で 、 <input name="note-behaviour-folder-add[3]" ...>および基本的に でname始まるすべてのものを取得できますnote-behaviour-folder-add

于 2013-05-26T20:01:07.440 に答える