簡體   English   中英

表單提交時未通過參數值

[英]Parameter value not coming through on form submit

在我服務器的 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 制作並提交表格。

  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();
  }

第一個警報報告 nodeID 為 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)));
    } 

找到了。 在導航窗格中有一個我忘記的同名表單。 提交是在該交易的路徑上完成的,沒有人從隨附的 select 框中選擇 NodeID。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM