AJAX表单验证怎样才能在全部通过验证的情况下提交按钮才有效?

airermeng 2008-11-10 04:37:14
AJAX表单验证怎样才能在全部通过验证的情况下提交按钮才有效?

也就是按下按钮后,怎么一次性执行所有的验证?
...全文
725 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
fuxuemin888 2012-03-07
  • 打赏
  • 举报
回复
5555555555
wxwxy_2010 2011-05-10
  • 打赏
  • 举报
回复
楼主能将全部代码贴出来吗,我是新手,不知道怎么弄
wd888888 2010-07-27
  • 打赏
  • 举报
回复
哈哈学习一下
airermeng 2008-11-11
  • 打赏
  • 举报
回复
非常感谢 showbo !!

向高手学习!向高手致敬!
Go 旅城通票 2008-11-11
  • 打赏
  • 举报
回复
假设你有2个需要验证的,一个是用户名,一个是密码,那么状态数组就是
var Arr=new Array(0,0);//默认为1,未通过,索引0---对应username    索引1---对应email


默认的提交按钮也是不可用的

<input type="text" name="username" onblur="ajax检验函数"/>
<input type="text" name="email" onblur="ajax检验函数"/>
<input type="submit" id="subTJ" disabled="disabled" value="提交"/>


然后你通过ajax验证需要的信息过后在readyState==4判断返回的信息是否是通过的,如果是通过的,根据验证的是用户名还是email然后设置Arr的标志位为1,并通过遍历Arr看里面的值是否都为1了,如果都是1了就设置提交按钮为可用

//下面这个函数通过传递进入的参数设置标志位,值为验证的控件的name
//在你的ajax验证完,readyState==4并且返回信息是通过时调用此函数
function setStatus(name){
switch(name){
case 'username':
Arr[0]=1;break;
case 'email':
Arr[1]=1;break;
}
var ok=true;
//遍历Arr看是否都为1了
for(var i=0;i<Arr.length;i++)if(Arr[i]==0){ok=false;break;}
if(ok)//都通过了则设置提交为true
document.getElementById('subTJ').disabled=false;
}


airermeng 2008-11-10
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 showbo 的回复:]
先实则提交按钮为不可用,disabled="disabled"

然后设置状态数组

JScript codevar arr=new Array(0,0,0,0);//有多少个验证就设置多少个项
//当ajax每次验证完后设置对应的标志位,然后遍历这个状态数组,如果都为1了,假设成功验证设置为1,设置递交按钮为可用

//disabled=false;
[/Quote]


何时遍历数组呢?这个和直接调用ajax的验证函数没有差别吧?
主要问题是:如何知道所有的ajax验证都执行完成了?
Go 旅城通票 2008-11-10
  • 打赏
  • 举报
回复
先实则提交按钮为不可用,disabled="disabled"

然后设置状态数组
var arr=new Array(0,0,0,0);//有多少个验证就设置多少个项
//当ajax每次验证完后设置对应的标志位,然后遍历这个状态数组,如果都为1了,假设成功验证设置为1,设置递交按钮为可用

//disabled=false;
Jarvis-Li 2008-11-10
  • 打赏
  • 举报
回复
OnClientClick="if(!aaa()) return false;"
在按钮上加上这个就可以了aaa()是你定义的验证方法,当返回的不是true时就不会执行
airermeng 2008-11-10
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 xiaojing7 的回复:]


HTML code
<script type="text/javascript">
var CheckForm=function(){
if(document.getElementById("").value=="")
{
alert( value is not null);
return false;
}
if()
{
}
if()
{
}
if()
{
}
......
};
</script>


<input type="button" value="Check" onclick="return CheckForm()" />
[/Quote]

晕,你可能搞错意思了。

我说的是:页面上有很多输入的input控件用的是Ajax验证,例如:用户输入用户名后不用提交表单就知道这个用户名是否占用;还要实现点击“提交”按钮的时候所有的验证(包括ajax实现的验证)都要验证一遍才能提交,主要问题是:ajax的验证异步执行的,要怎样才能在提交表单之前一定要执行完ajax的验证?
草原可可 2008-11-10
  • 打赏
  • 举报
回复
自己写个函数 就OK
zhangsf1982 2008-11-10
  • 打赏
  • 举报
回复
在提交(submit)之前 写一个函数(Function)

1.不需要后台数据的 用JS进行简单的有效性验证

2.需要数据库中的数据来综合判断输入有效性的, 用AJAX异步取得数据进行验证

如上当有不符合验证的则 记录 (错误信息)ErrorMess

最后判断ErrorMess

有ErrorMess 则 不执行提交(Submit)而显示信息

否则 提交
sy_binbin 2008-11-10
  • 打赏
  • 举报
回复
function allchk(){
var result;
result=chkusername();//验证用户名
if(!result){
document.form1.username.focus();
return false;}
result=chkpassword()&&chkpassword1();//验证密码
if(!result){
document.form1.password.focus();
return false;}
result=chkemail();//验证邮件格式是否正确
if(!result){
document.form1.email.focus();
return false;}
return true;}

还要有四个函数,chkusername();chkpassword();chkpassword1();chkemail();


xiaojing7 2008-11-10
  • 打赏
  • 举报
回复


<script type="text/javascript">
var CheckForm=function(){
if(document.getElementById("").value=="")
{
alert( value is not null);
return false;
}
if()
{
}
if()
{
}
if()
{
}
......
};
</script>


<input type="button" value="Check" onclick="return CheckForm()" />
本人自己开发的jquery表单验证控件! 使用方便,样式美观,完全开源。好不好用了就知道了! 插件名称:jquery表单验证插件 V1.0 插件作者:zy8008 最后更新:2011-4-28 插件说明: datatype类型说明: --------------------------------------- *:必填写,可为任意字符 number:数字 zip:邮政编码 mobile:手机号 email:邮箱 ajax:异步远程验证,必须添加ajaxurl属性并将要验证的字段保留空 如: reg:正则验证,必须添加reg属性 如: checkbox:复选框验证 radiobox:单选框验证 前台添加属性说明: ----------------------------------------------- datatype:必须 数据验证类型,见上面说明 errmsg:可选 错误信息,验证失败的信息,如果不设置或为空,则验证框显示“验证失败!” tip:可选 未验证前的提示信息,如果不设置或为空,则隐藏提示框 allowblank:可选 值为“true|false”默认为true 是否允许为空,如果设为true则值为空的时候也能通过验证,对*,ajax,checkbox,radiobox,reg无效 reg: 正则表达式规则,只能用开datatype为reg的时候,否则无效 ajaxurl:异步远程验证url,只能用的datatype为ajax的时候,否则无效。将要验证的字段放在url最后,将留空 如test.asp?uname= 调用说明: ------------------------------------------------- $(document).ready(function() { $("#aspnetForm").valideform({isokhide:true,btnsubmit:"#bbb"})}); #aspnetForm:需要验证的表单的ID,你也可以用jquery选择器自已定义 isokhid:可选 值为“true|false”默认为false 当点击提交按钮的时候,如果通过验证的项目将隐藏验证提示框 btnsubmit:可选 指定一个绑定提交事件的控件ID,如一个普通按钮或一个超链接,表单中的submit依然有效 其它具体使用方法,请参阅demo文件!

52,797

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 Ajax
社区管理员
  • Ajax
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧