参数值不在表单提交中通过

问题描述 投票:0回答:1

在服务器的doPost顶部,我收集到达的参数名称,并使用request.getParameterValues(pName)遍历它们以收集其值。经过了充分的测试,目前正在为我的新交易生成此文件:

                NodeID : []

              function : [modify]

这告诉我正在发送参数'NodeID',但是没有值通过。我在提交表单之前发出了警报,以查看表单在开发人员的DOM显示中的外观,如下所示:

<form id="modify" action="/BackToTech/server?function=modify" method="post">
  <input name="NodeID" value="28" />
</form>

这是生成并提交表单的javascript函数。

  function modify(nodeID) {
    alert("node.id = " + nodeID);
    var root = document.body;
    var form = $('<FORM>')
                    .attr('action', "/BackToTech/server?function=modify")
                    .attr('method', "post")
                    .attr('id', "modify")
                    .appendTo(root);
                $('<INPUT>')
                    .attr('name', 'NodeID')
                    .attr('value', nodeID)
                    .appendTo(form);
                //alert('delay');
    $('#modify').submit();
  }

第一个警报报告的节点ID为28。

有任何错误跳出来吗?我以为我最近对删除事务做了同样的事情,并且在用ajax调用代替它之前让它工作了,所以我对此方法充满信心。我想我可能还包括服务器doPost的顶部:

    Enumeration<String> pNames = request.getParameterNames();
    ArrayList<String> parameterNames = new ArrayList<String>();
    while(pNames.hasMoreElements()) 
        parameterNames.add(pNames.nextElement());
    Object[] orderedNames = parameterNames.toArray();
    Arrays.sort(orderedNames); //.sort(parameterNames)

    for(int i=0; i<orderedNames.length; i++) {
        String pName = orderedNames[i].toString();
        for(int v=0; v<(25-pName.length()); v++) {
            System.out.print(' ');
        }
        System.out.println(pName + " : " + Arrays.asList(request.getParameterValues(pName)));
    } 
javascript html jquery forms servlets
1个回答
0
投票

找到了。在导航窗格中有一个我忘记了的同名表单。正在进行该事务的提交,其中没有人从随附的选择框中选择NodeID。

© www.soinside.com 2019 - 2024. All rights reserved.