我有一个选择下拉列表 -
<form name="myform" id="myform" method="post">
<select name="assettypeid" id="assettypeid" onchange="typechanged();">
<sql:query var="queryresults" dataSource="jdbc/database">
SELECT id, name FROM assettype order by name
</sql:query>
<option value="1">-- All Asset Types--</option>
<c:forEach var="row" items="${queryresults.rows}">
<option value="<c:out value="${row.id}"/>"
<c:if test="${row.id == param.assettypeid}">
<c:out value="selected"/>
</c:if>
><c:out value="${row.name}" />
</option>
</c:forEach>
</select>
</form>
然后是函数(我在函数中尝试表单创建/提交,因为typechanged与post(在主jsp中)一起是不可靠的,我不想有一个提交按钮) -
function typechanged()
{
typechosen = document.getElementById("assettypeid").value;
alert(typechosen);
var newform = document.createElement("form");
newform.action = "";
newform.method = "post";
product = document.createElement("input");
product.value = document.getElementById("assettypeid").value;
product.name = "assettypeid";
newform.appendChild(product);
document.getElementById('newform').submit();
}
警报部分工作正常(所以我知道它正在拾取正确的元素和值),表单/帖子部分(应该回发到同一个jsp)不会发布。
我做错了什么?
此致 拉尔夫
答案 0 :(得分:0)
newform它是一个变量,它不是一个元素。您创建了名为“form”的元素和使用“newform”保存它的变量,因此您应该将提交更改为:
document.getElementById('form').submit();
答案 1 :(得分:-1)
使用:
newform.submit();
而不是:
document.getElementById('newform').submit();
您没有设置新表单的ID,因此您无法使用getElementById。