用ajax校验表单并实现通过校验表单才提交的小功能
最近在学习PHP,用的是3.2版本的ThinkPHP框架最基本的增删改查弄完了之后想弄点有意思的,于是乎决定玩一下ajax校验,本以为很简单,真正做起来之后才发现遇到了各种各样的问题,分享一下
ajax校验最常见的一般是增加和修改页:
添加页
首先用ajax就要先有触发事件,一般是onchange事件或者onblur事件这里用的是onblur事件
然后在javascript里建立一个function:
控制层代码是这样的:
把ajax传过来的值放到数据库里查询,如果有结果就说明数据库里有这条数据就返回给html页面一个1,如果没有记录就返回给html页面一个0
html页面在ajax的成功回调函数里接到控制层传来的0或1然后做判断,如果是0就说明数据库里没数据,名称不重复,是1就说明名称重复,还有种情况就是用户直接不填,就在加一条判断条件
这样就完成了提示的功能,但是这样还不够,因为即使提示名称不满足条件该可以点提交
处理方法是引入一个全局变量
from表单有一个onsubmit事件,这个事件如果返回true就能提交,如果返回false就不能提交
建立一个panduan的方法
到了这步就完成了添加页面的检验功能
修改页
修改页和添加页有些区别,修改页一般是有回显功能的,如果用户不小心点击了修改页面又不想修改数据的话ajax也会触发就会出错
处理方法是首先建一个隐藏域,把未修改之前的值传给这个隐藏域
思路是把未修改的值与用户输入的值比较,如果两者相等就说明用户没有修改,就把提示清空,并不让程序走ajax
这样校验就基本搞定了,刚刚一个老司机和我说我没有考虑时效性的问题,等我再研究一下,我是一个用心写bug的程序员