0

私はJQueryとJavascriptから始めたばかりで、ネストされたチェックボックス入力のセットを適応させて、jstreeチェックボックスの動作を利用しています。各項目が jstree コードによって認識されるアンカー タグである必要があることに気付いた後、POST フォーム送信用の項目から値を生成する方法がわかりません。以前はチェックボックス入力でしたが、Javascript がオフになっていてもフォームが機能するように、この方法を維持できるようにしたいと考えています。アンカー タグで入力をラップすると、アイテムごとに 2 つのチェックボックスが作成され、1 つは JStree によってスタイル設定され、動作が制御され、もう 1 つは無視されました。これは進むべき方向ではないと思います。

これを達成する方法についてのアドバイスをいただければ幸いです。

次の設定コードで JStree を起動しています -

$(document).ready(function()
{
    $('.nested-category').jstree({ 
        ui: { theme_name : "checkbox" },
        plugins : ["checkbox", "themes", "html_data", "ui" ]
    });
}
);

以下は、JStree コードが影響を与えるフォームの簡略化されたバージョンですが、値を送信することはできません。

<form method="post" action="">

<div class="nested-category">

<ul class="">
    <li><a href="#">group1</a>
        <ul>
            <li><a href="#">subgroup1</a>
                <ul>
                    <li><a href="#">item1</a></li>
                    <li><a href="#">item2</a></li>
                    <li><a href="#">item3</a></li>
                </ul>
            </li>
            <li><a href="#">subgroup2</a>
                <ul>
                    <li><a href="#">item4</a></li>
                    <li><a href="#">item5</a></li>
                    <li><a href="#">item6</a></li>
                </ul>
            </li>
        </ul>
    </li>
    <li><a href="#">group2</a>
        <ul>
            <li><a href="#">subgroup3</a>
                <ul>
                    <li><a href="#">item7</a></li>
                    <li><a href="#">item8</a></li>
                    <li><a href="#">item9</a></li>
                </ul>
            </li>
            <li><a href="#">subgroup4</a>
                <ul>
                    <li><a href="#">item10</a></li>
                    <li><a href="#">item11</a></li>
                    <li><a href="#">item12</a></li>
                </ul>
            </li>
        </ul>
    </li>
</ul>
</div>

<input class="form-submit" type="submit" name="submit" value="submit">
</form>
4

2 に答える 2

1

各アンカータグ内に入力要素を追加することで問題を解決しました。これは、追加の Javascript によって隠されています。jsTree スクリプトのいくつかの追加行は、jsTree によって生成された入力がチェックされるときに入力に 'checked' を追加し、入力がチェックされたフォームに返される場合はその逆です。Javascript がオフになっている場合、入力チェックボックスは HTML フォームで通常どおり機能します。詳細な説明が必要な場合は、例と jsTree に加えられた変更を投稿できます。

これが問題を解決するためのちょっとした手詰まりな方法であることは間違いありませんが、それが私が現在未熟な Web 開発の状態にあるところです!

于 2010-11-05T10:04:54.917 に答える
0

個人的には、AJAX を使用します。$.post

アンカーに ID を与えます。jsTree には、選択したすべての ID を取得するメソッドがあると確信しています。

于 2010-09-06T08:49:13.830 に答える