在javascript中提交表单无效

时间:2018-04-11 07:49:41

标签: javascript

我有一个选择下拉列表 -

<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)不会发布。

我做错了什么?

此致 拉尔夫

2 个答案:

答案 0 :(得分:0)

newform它是一个变量,它不是一个元素。您创建了名为“form”的元素和使用“newform”保存它的变量,因此您应该将提交更改为:

document.getElementById('form').submit();

答案 1 :(得分:-1)

使用:

newform.submit();

而不是:

document.getElementById('newform').submit();

您没有设置新表单的ID,因此您无法使用getElementById。