0

私はこの問題を抱えています。チェックされた親と子の両方のコードがあります。しかし問題は、最終的に値を取得する方法がわからないことです..ここでは、親と子の両方を含むチェックボックスリスト

<ul id="jobCat">
        <li>
            <input id="s9" class="parent" type="checkbox" name="jobCat" value="Accounting / Finance"
            />Accounting / Finance</li>
        <li>
            <input id="s15" class="parent-s9" type="checkbox" name="jobCat" value="Banking / Financial"
            /><span>Banking / Financial</span>
        </li>
        <li>
            <input id="s16" class="parent-s9" type="checkbox" name="jobCat" value="General / Cost Acct"
            /><span>General / Cost Acct</span>
        </li> </ul>

そしてここにjquery

 var checkboxHandlerObj = {

    init: function () {
        $('#jobCat input:checkbox[class="parent"]').click(checkboxHandlerObj.parentClicked);
        $('#jobCat input:checkbox[class^="parent-"]').click(checkboxHandlerObj.childClicked);
    },
    parentClicked: function () {
        var parentCheck = this.checked;
        $('#jobCat input:checkbox[class="parent-' + $(this).attr('id') + '"]').each(function () {
            this.checked = parentCheck;
        });
    },
    childClicked: function () {
        var temp = $(this).attr('class').split('-');
        var parentId = temp[1];
        $('#' + parentId)[0].checked = $('#jobCat input:checkbox[class="' + $(this).attr('class') + '"]:checked').length !== 0;
    }
};

checkboxHandlerObj.init();

here ..会計/財務チェックボックスをクリックすると、すべてが選択されました。しかし、それは最終的に値を表示しないので、最後にそれらすべて(親と子の両方)を表示したいのです。私はそのためのコーディング方法を混乱させています..誰か助けてください..

4

1 に答える 1

0

フィドルを見てください。これはあなたにそれを行う方法についてのアイデアを与えるかもしれません..

http://jsfiddle.net/Gy9Jq/

以下の機能を変更する必要があります。

 parentClicked: function () {
        var parentCheck = this.checked;
        var values='i';
        $('#jobCat input:checkbox[class="parent-' + $(this).attr('id') + '"]').each(function () {
            this.checked = parentCheck;
            values+=this.attr('value');
        });
        alert('hi');
    },

ここで更新されたフィドルを確認してください。これがあなたが望むものだと思います:

http://jsfiddle.net/Gy9Jq/6/

于 2013-03-22T04:50:01.290 に答える