0

我目前有这个树节点,它是从 http://mbraak.github.io/jqTree/创建的。我正在尝试实现这棵树,以便当用户单击树中的一个节点时,它会将数据发送到我的 servlet。有没有办法做到这一点?我目前正在使用 JSP。我最初的解决方案是添加一个按钮,以便按钮(带有表单标签)在被点击时(在选择我的节点后)会执行发布操作,但我想知道是否有任何不使用按钮的解决方案。我也想过使用 ajax,但我对此很陌生,不确定它是否有效。真的需要一些帮助。谢谢我的树:

$('#tree1').tree({data: data});
    $('#tree1').bind(
             'tree.click',
            function(event) {
                if (event.node) {
                    // node was selected
                        node = event.node.name;
                    alert(node);
                    // send node value to servlet
                }
                else {
                }});

HTML

<div id="tree1"></div>

我最初的想法

  $('#saveCat').click(function(){
        document.getElementById('mainCat').value = node;
        document.getElementById('action').value = "savecategory";
     });


  <form action="TopicCloudServlet">
    <button id="saveCat" class=" catbtn btn-primary">Save</button>
    <input type="hidden" id="mainCat" name="mainCat" value="" />
    <input type="hidden" id="action" name="action" value="" />
  </form>
4

2 回答 2

0

好的,我找到了 1 个非常简单的解决方案(我为什么没想到)

  1. 向将要提交的表单添加一个 id。
  2. 在您希望提交表单的 javascript 中,

    document.forms["FormID"].submit();

于 2013-11-12T02:12:36.440 回答
0

假设您正在动态创建树,您可以在渲染树的每个节点时添加额外的元素作为属性。不用担心,您的自定义属性将被浏览器忽略。

“nodevalue”下面是您自己的属性,您在渲染树时动态添加到 div 以唯一标识每个节点。

<div id="tree1">
   <div nodevalue="node1" class="mynode">
   </div>
  <div nodevalue="node2" class="mynode">
   </div>
</div>

然后编写一个jquery类选择器onclick事件,获取被点击节点的唯一ID。

$(".mynode").on("click",function(){

    alert(this.attr("nodevalue"));

});

this.attr("nodevalue")

将给出您当前单击的节点的值。

于 2013-11-12T01:40:18.253 回答