表单未使用Javascript提交

时间:2015-02-20 19:35:49

标签: java javascript html forms jsp

我正在开发一个spring web应用程序。在前端我使用JSP.我在jsp中有一个表单(带有id formToSubmit) -

<form:form id="formToSubmit" modelAttribute="jobForm" >
    <table>

        <tr>
            <td valign="top"><label>Your Comments:</label></td>
            <td>
                (Required if you do not review the samples)<br />
                <form:textarea id="newCommentsTextAreaId" path="newComments" rows="5" cols="50" />
            </td>
        </tr>

        <tr>
            <td colspan="2">
                <br />
                <input onclick="apprvRqstSbmt()"type="image" src="/images/buttons/approveBtn.png" /><br />
                <br />
            </td>
        </tr>

        <tr>
            <td colspan="2">
                <br />
                <input onclick="disApprvRqstSbmt()" type="image" src="/images/buttons/disApproveBtn.png" />
                <br/>
            </td>
        </tr>
    </table>
</form:form>

此表单有两个按钮 - 一个用于批准(使用apprveBtn.png),另一个用于拒绝(使用disApproveBtn.png)。所以我写了一些javascript来点击按钮提交表单 -

<script type="text/javascript">

    function apprvRqstSbmt(){

        $("#formToSubmit").attr("action","/some/url/to/submit");
        $("#formToSubmit").submit();
    }

    function disApprvRqstSbmt(){
        $("#formToSubmit").attr("action","/some/url/to/submit");
        $("#formToSubmit").submit();
    }

</script>

点击拒登按钮后,表单会正确提交。但是当我点击批准按钮时,表单未正确提交。任何人都可以帮助我为什么表格没有正确提交?

2 个答案:

答案 0 :(得分:2)

刚刚删除:form,我无法理解为什么有必要。

另外,感谢Razib,除了:form这个不必要的部分之外,您忘了将方法设置为POST,因此您可以将其添加到javascript部分或HTML中。你可以看到我在两者中做过。您只能使用其中一个。

&#13;
&#13;
    function apprvRqstSbmt(){
        $("#formToSubmit").attr("method","POST");  //Razib solution
        $("#formToSubmit").attr("action","/some/url/to/submit");
        $("#formToSubmit").submit();
    }

    function disApprvRqstSbmt(){
        $("#formToSubmit").attr("method","POST");  //Razib solution
        $("#formToSubmit").attr("action","/some/url/to/submit");
        $("#formToSubmit").submit();
    }
&#13;
    <form id="formToSubmit" modelAttribute="jobForm" method="POST" >
        <table>
    
            <tr>
                <td valign="top"><label>Your Comments:</label></td>
                <td>
                    (Required if you do not review the samples)<br />
                    <form:textarea id="newCommentsTextAreaId" path="newComments" rows="5" cols="50" />
                </td>
            </tr>
    
            <tr>
                <td colspan="2">
                    <br />
                    <input onclick="apprvRqstSbmt()"type="image" src="/images/buttons/approveBtn.png" /><br />
                    <br />
                </td>
            </tr>
    
            <tr>
                <td colspan="2">
                    <br />
                    <input onclick="disApprvRqstSbmt()" type="image" src="/images/buttons/disApproveBtn.png" />
                    <br/>
                </td>
            </tr>
        </table>
    </form>
&#13;
&#13;
&#13;

JSFiddle:http://jsfiddle.net/6fp1ukzL/

答案 1 :(得分:1)

我认为您错过了'method'中的javascript属性。您必须在attr("method", "POST")中添加javascript。如果我用我的更改重写你的代码,那么它将是 -

<script type="text/javascript">

    function apprvRqstSbmt(){
        $("#formToSubmit").attr("method","POST");               
        $("#formToSubmit").attr("action","/some/url/to/submit");
        $("#formToSubmit").submit();
    }
</script>

“拒绝”按钮点击工作正常,因为表单提交的默认方法是“GET”。可能不赞成按钮正在抛出一个获取请求。