0

我刚开始使用 JQuery 和 Javascript,并调整一组嵌套的复选框输入以利用 jstree 复选框行为。在意识到每个项目都必须是 jstree 代码识别的锚标记之后,我现在不确定如何从项目生成值以用于 POST 表单提交。以前它们是复选框输入,我希望能够以这种方式保留它们,以便在关闭 Javascript 时表单仍然可以运行。在锚标记中包装输入会导致每个项目有两个复选框,一个由 JStree 设置样式和行为控制,另一个被忽略。我认为这不是前进的方向。

任何有关如何实现这一目标的建议将不胜感激。

我正在使用以下配置代码启动 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 脚本中的几行附加行将“检查”添加到输入,反之亦然,如果输入返回到检查的表单。如果关闭 Javascript,输入复选框在 HTML 表单中正常工作。如果有人想进一步解释,我可以发布示例和对 jsTree 所做的更改。

我不怀疑这是解决问题的一种摇摇欲坠的方法,但这就是我目前处于未开化的 Web 开发状态的地方!

于 2010-11-05T10:04:54.917 回答
0

就个人而言,我会使用 AJAX。$.post

给锚点一个ID,在jsTree中我确定有一种方法可以获取所有选定的ID

于 2010-09-06T08:49:13.830 回答