jQuery Validation ,调用valid方法时,不验证remote
1、问题描述
model代码如下:

remote对应的action如下:

view代码如下:

单击按钮时,执行如下动作

当点击按钮时,我们发现,虽然后台action验证失败,但
还是执行返回true,目测是因为remote验证采用的ajax 异步方式,
并不等待remote的执行验证,所以返回了true。
2、解决方法
<script type="text/javascript">
var intervalPending = null;
function remoteCheck() {
var validator = $("form").data("validator");
alert(validator.pendingRequest);
if (validator.pendingRequest == 0) {
// requests are done
// clear interval clearInterval(intervalPending);
// re-enable our "submit" button // "click" the hidden button
if ($("form").valid()) {
alert(111);
}
}
// we will try again after the interval passes
}
$(function () {
$("#test").click(function () {
intervalPending = setInterval('remoteCheck()', 1000);
})
})
</script>
3、原理说明
我们需要解决的问题是,在执行$("form").valid()时等待remote的执行。
思路如下:
- 1、使用
$("form").data("validator").pendingRequest
来确定remote是否执行完毕(remote全部执行完毕之后,$("form").data("validator").pendingRequest的值为0)
2、创建一个计时器,
intervalPending = setInterval('remoteCheck()', 1000);
每隔一秒钟就判断一次remote的执行情况,是否已经全部执行完毕,当执行完毕之后,清除计时器,执行我们自己的动作,否则,继续循环判判断。
4、参考链接
jQuery Validation ,调用valid方法时,不验证remote的更多相关文章
- 解决 jQuery validation插件 valid()方法总是返回true的问题
在表单元素验证方法中加入了 remote 方法,调试一直返回true,后来才知道因为是异步验证,所以才会出现此问题,解决方法就是在 remote 方法中,禁用 异步和缓存,具体代码如下 : ..... ...
- C#编译器优化那点事 c# 如果一个对象的值为null,那么它调用扩展方法时为甚么不报错 webAPI 控制器(Controller)太多怎么办? .NET MVC项目设置包含Areas中的页面为默认启动页 (五)Net Core使用静态文件 学习ASP.NET Core Razor 编程系列八——并发处理
C#编译器优化那点事 使用C#编写程序,给最终用户的程序,是需要使用release配置的,而release配置和debug配置,有一个关键区别,就是release的编译器优化默认是启用的.优化代码 ...
- SQL Server 调用 C# 方法实现正则表达式验证
Ø 前言 1. 在 SQL Server 中默认是不支持正则表达式验证的,如果需要某个字符串匹配一个正则表达式的验证规则,就需要额外的编写 C# 方法,并发布到 SQL Server 数据库中. ...
- JS常用方法总结,及jquery异步调用后台方法实例
//前台接收get参数值 function getQueryString(name) { var queryStrings = window.location.search.sp ...
- c# 如果一个对象的值为null,那么它调用扩展方法时为甚么不报错
如果一个对象的值为null,那么它调用扩展方法时会报错吗? Person p = null ; p.ExtendMethod(); 上述代码出现的情况不会报错,刚开始遇到这种情况时很纳闷,就去问了大牛 ...
- Android app启动activity并调用onCreate()方法时都默默地干了什么?
Android app启动activity并调用onCreate() 方法时都默默地干了什么? 在AndroidManifest.xml文件中的<intent-filter>元素中有这 ...
- Jmeter的BeanShell中报错:调用bsh方法时出错Error invoking bsh method: eval
报错内容:ERROR - jmeter.util.BeanShellInterpreter: Error invoking bsh method: eval In file: inline evalu ...
- asp.net如何在前台利用jquery Ajax调用后台方法
一 :最近因为帮同事开发项目使用到了asp.net,而我又想实现Ajax异步请求....从网上查询了一下资料之后,原来在asp.net中利用Ajax调用后台方法同样很简单,为了便于自己以后查看,特将此 ...
- jQuery validate 的valid()方法一直返回true
1 调用$('#myForm').valid(),一直返回ture eg:html <form id="myForm"> <input class="f ...
随机推荐
- QThreadPool类和QtConcurrent命名空间
一.QThreadPool类 QThreadPool管理一组线程.它负责管理和回收单个QThread对象以减少程序中线程创建的开销.每个Qt应用程序都有一个全局的QThreadPool对象,可通过方 ...
- Android通过adb shell am broadcast发送广播 参数说明
通过命令行执行adb shell am broadcast发送广播通知. adb shell am broadcast 后面的参数有: <INTENT> specifications in ...
- centos中screen的使用
只是讲解几个简单的操作,例如,创建新窗口,切换到新窗口,删除窗口.(因为我要启动elk,所以需要使用到screen) 一.创建一个新窗口: 安装完成后,直接敲命令screen就可以启动它.但是这样启动 ...
- python核心模块方法
********************os模块: os.remove() 删除文件 os.unlink() 删除文件 os.rename() 重命名文件 os.listdir() 列出指定目录下所有 ...
- nginx 解决session一致性
session 粘滞性每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题. upstream backserver {ip_hash;server ...
- Re-ranking Person Re-identification with k-reciprocal Encoding
Re-ranking Person Re-identification with k-reciprocal Encoding Abstract In this paper, we propose a ...
- DC-1靶机
DC-1 靶机获取:http://www.five86.com/ 发现IP:arp-scan --interface=eth0 -localnet arp-scan -l 靶机IP:192.168.0 ...
- 【FFMPEG】【ARM-Linux开发】arm上安装FFMPEG
交叉编译工具下载地址 : https://launchpad.net/linaro-toolchain-binaries/+download 其中我下载的是 : gcc-linaro-arm-linu ...
- 【VS开发】文件共享内存2
在32位的Windows系统中,每一个进程都有权访问他自己的4GB(232=4294967296)平面地址空间,没有段,没有选择符,没有near和far指针,没有near和far函数调用,也没有内存模 ...
- springboot datajpa 简明说明
findById返回Optional的使用 查询 public Object lookupDevice(Integer id) { return deviceJpa.findById(id).orEl ...