form有一個action屬性,在設置form時可以設置action,表單提交時就會執行這個action,如下:
1 <form:form id="inputForm" modelAttribute="doctorMsgPush" action="${ctx}/doctor/test" method="post" name="form1" 2 class="form-horizontal"> 3 <form:hidden path="id"/> 4 <div class="control-group"> 5 <label class="control-label">標題:</label> 6 7 <div class="controls"> 8 <form:input path="title" htmlEscape="false" maxlength="300" class="input-xlarge required"/> 10 </div> 11 </div> 12 <div class="form-actions"> 13 <input id="btnSubmit" class="btn btn-primary"type="submit" value="保 存"/> 17 </div> 18 </form:form>
button的屬性為submit,submit是特殊的button,它會自動的提交表單。
有時候不要自動提交表單,而是希望經過處理后再提交表單時,可以設定button的onclick屬性,在JS中設定一個處理方法,並且必須有返回值(true 或者 false),button的onclick屬性設置如下:
<input type="submit" value="提交" onclick="return function()"/>
這時候,就會根據function()的的返回值來判定是否提交表單。
有時候一個表單的數據,根據不同的要求需要提交到不同的action,這時候應該怎么做呢。
此時JSP頁面有兩個button,第一個button要將表單提交到action1,第二個button要將表單提交到action2.因為存在兩個action ,因此在表單設置的時候,action屬性是不能固定的,所以不對它進行設置。而是在JS 中根據判定條件來設置action。代碼如下:
1 <form:form id="inputForm" modelAttribute="doctorMsgPush" action="" method="post" name="form1" class="form-horizontal"> 2 <form:hidden path="id"/> 3 <div class="control-group"> 4 <label class="control-label">標題:</label> 5 6 <div class="controls"> 7 <form:input path="title" htmlEscape="false" maxlength="300" class="input-xlarge required"/> 9 </div> 10 </div> 11 12 <div class="form-actions"> 13 <input id="btnSubmit" class="btn btn-primary" type="submit" onclick="check2()" value="保 存"/> 14 <input type="submit" value="查詢用戶ID" onclick="check()" class="btn btn-primary"/> 15 </div> 16 </form:form>
JS代碼如下:
1 <script> 2 function check() { 3 document.form1.action = "${ctx}/doctor/doctormsgpushy/find?"; //action1 4 } 5 function check2() { 6 document.form1.action = "${ctx}/doctor/doctormsgpushy/save"; //action2 7 } 8 </script>
這樣就能完成一個表單提交到不同的action了。