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了。