1、问题描述
model代码如下:
remote对应的action如下:
view代码如下:
单击按钮时,执行如下动作
当点击按钮时,我们发现,虽然后台action验证失败,但 还是执行返回true,目测是因为remote验证采用的ajax 异步方式,并不等待remote的执行验证,所以返回了true。
2、解决方法
3、原理说明
我们需要解决的问题是,在执行$("form").valid()时等待remote的执行。
思路如下:
- 1、使用
$("form").data("validator").pendingRequest
来确定remote是否执行完毕(remote全部执行完毕之后,$("form").data("validator").pendingRequest的值为0)
2、创建一个计时器,
intervalPending = setInterval('remoteCheck()', 1000);
每隔一秒钟就判断一次remote的执行情况,是否已经全部执行完毕,当执行完毕之后,清除计时器,执行我们自己的动作,否则,继续循环判判断。