jsp页面中ajax??????
我在jsp页面中写ajax有一个validate()方法,在页面提交的时候有一个submit()方法,我是这样写的submit(){validate();...........
我在jsp页面中写ajax 有一个validate()方法,在页面提交的时候有一个submit()方法,我是这样写的
submit(){
validate();
............... }
请问这样可以吗?我的为什么没有通过validate方法?
事实上我在别的地方调用了validate方法,但是即便的到的反馈信息是错的(我用validate验证一些输入),页面依然可以提交,所以我想在提交的时候再调用一次。为什么不能呢?
怎么才能在验证错误时阻止提交呢? 展开
submit(){
validate();
............... }
请问这样可以吗?我的为什么没有通过validate方法?
事实上我在别的地方调用了validate方法,但是即便的到的反馈信息是错的(我用validate验证一些输入),页面依然可以提交,所以我想在提交的时候再调用一次。为什么不能呢?
怎么才能在验证错误时阻止提交呢? 展开
2个回答
展开全部
若你的代码逻辑是如下:
submit(){
validate();//该处是ajax验证
//后续代码
............... }
这样写ajax验证是无法阻止提交的,因为validate()中ajax发送请求后不会影响validate后面的执行,程序还会继续往后执行,使用ajax来实现异步验证,对于是否验证通过要通过ajax发送请求后返回的数据来判断,那么你的后续代码也应该如此,还有要阻止提交那么方法必须要反回true或false。
例如:
function submit(){
......
//发送请求
xmlHttp.open("GET",URL,true);
xmlHttp.send(null);
if(xmlHttp.readyState == 4 && xmlHttp.status == 200) {
var check = req.responseText; //一部验证返回的结果
if(根据返回的结果判断验证通过){
//验证通过 执行后续代码
......
return true;
}else{
return false;
}
}
}
页面中的调用:
<form aciton="" onsubmit="return submit();">
</form>
submit(){
validate();//该处是ajax验证
//后续代码
............... }
这样写ajax验证是无法阻止提交的,因为validate()中ajax发送请求后不会影响validate后面的执行,程序还会继续往后执行,使用ajax来实现异步验证,对于是否验证通过要通过ajax发送请求后返回的数据来判断,那么你的后续代码也应该如此,还有要阻止提交那么方法必须要反回true或false。
例如:
function submit(){
......
//发送请求
xmlHttp.open("GET",URL,true);
xmlHttp.send(null);
if(xmlHttp.readyState == 4 && xmlHttp.status == 200) {
var check = req.responseText; //一部验证返回的结果
if(根据返回的结果判断验证通过){
//验证通过 执行后续代码
......
return true;
}else{
return false;
}
}
}
页面中的调用:
<form aciton="" onsubmit="return submit();">
</form>
展开全部
validate插件是通过表单元素调用,比如:
$(form).validate();
validate插件提供了提交方法:
$(form).validate({
submitHandler:function(form) {
$(form).ajax({
url : '',
type: '',
....
});
}
});
$(form).validate();
validate插件提供了提交方法:
$(form).validate({
submitHandler:function(form) {
$(form).ajax({
url : '',
type: '',
....
});
}
});
更多追问追答
追问
我没有用插件,就是简单的方法调方法,怎么就不行呢?另外,如果是alert();的话时阻断了的吧,但是如果document.getElementById().innerHtml什么的就不阻断,有方法让它阻断吗?
追答
阻止表单提交返回return false就可以了
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询