【发布时间】:2020-09-07 09:16:54
【问题描述】:
在我的服务器的 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();
}
第一个警报报告 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)));
}
【问题讨论】:
标签: javascript html jquery forms servlets