jsp-form提交时验证、返回值、不刷新
FORM提交有返回值有两方法:
1、在form下增加一个iframe,用于跳转,这样就解决了不刷新的问题;
在js中接收参数(text就是后端传回来的参数),这样就解决了返回值的问题;
同时因为button是submit类型,具有表单验证的功能
<div>
<form target='iframeForm1' action="xxxx" class="form-horizontal" method="post" id="form1">
<input id="" name=""/>
<button class="btn btn-primary" type="submit" id="formBtn1" style="display: none">提交表单1</button>
</form>
<iframe name="iframeForm1" id="iframeForm"></iframe>
</div>
$("#iframeForm1").load(function(){
var text = $(this).contents().find("body").text();
)};
2、将button的类型改成button,type="button",使用ajaxSubmit可以防止刷新;
可以接收返回值data;
但是这样不验证了
$("#formBtn1").click(function(){
$("#form1").ajaxSubmit(function (data) {
if(data){
alert("提交成功!");
}
return false;//加这个防止提交两次
});
});
查到以下方法,可以验证,但是发现验证没通过却没有提示
$("#form1").validate({
submitHandler: function(form) {
$(form).ajaxSubmit(function (data) {
if(data){
alert("成功!")
}
return false;
});
}
});
最终,我要实现的功能是 form1提交后,返回值true,则提交form2,提交成功跳转(重定向),两个form均需要验证字段。折腾一天,唉
<div>
<form target='iframeForm1' action="xxxx" class="form-horizontal" method="post" id="form1">
<input id="" name=""/>
<button class="btn btn-primary" type="submit" id="formBtn1" style="display: none">提交表单1</button>
</form>
<iframe name="iframeForm1" id="iframeForm" style="display:none"></iframe>
</div>
<div>
<form action="xxxx" class="form-horizontal" method="post" id="form2">
<input id="" name=""/>
<button class="btn btn-primary" type="submit" id="formBtn2" style="display: none">提交表单2</button>
<button class="btn btn-primary" type="button" id="formBtn3" style="display: none">提交表单3</button>
</form>
</div>
$("#formBtn3").click(function(){
$("#iframeForm1").click();//表单1提交和验证
})
//表单1提交后,重定向到隐藏的iframeForm1,用于接收返回值
$("#iframeForm").load(function(){
var text = $(this).contents().find("body").text();
if(text){
alert("表单1提交成功!");
$("#formBtn2").click();//表单2的提交和验证
}
})