将JSP表单数据提交给servlet

时间:2013-11-12 01:16:45

标签: javascript jsp servlets tree jqtree

我目前有这个从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>

2 个答案:

答案 0 :(得分: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")

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

答案 1 :(得分:0)

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

  1. 在要提交的表单中添加ID。
  2. 在您希望提交表单的JavaScript中

    document.forms [ “FormID”]提交();