jQuery Validat(e/tion)如何确定一个字段是否正在验证中?
我有一个自定义datepicker小部件,我想验证使用jQuery.validate。当我修改我的日期时,它不会重新验证,可能是因为更改事件不会触发绑定到哪个jQuery.validate的基础隐藏。
通过我的研究,我发现我可以通过调用$('#mydatepicker').valid()
来重新验证一个字段。我可以把它放在我的自定义小部件的on-change处理程序中。
理论上,这应该可行,但是在jQuery.validation初始化之前,我的小部件的on-change事件触发一次。这似乎完全破坏jQuery.validate。
所以我正在寻找一种方法来确定jQuery.validate是否已被初始化为这个特定的元素。即确定jQuery.validate是否试图观看它。
我试图
if($input.valid) $input.valid();
但我认为,如果jQuery.validate是否已经被初始化的方法,无论是否存在。
需要明确的是,我的HTML的结构是这样的:
<form id="myform">
<input id="mywidget" type="hidden">
<script>$('#mywidget').initializeMyCustomWidget();</script>
</form>
<script>
$('#myform').validate({ myOptions });
</script>
“不正确。在.validate()被初始化之前,不能使用.valid()。” - “方法存在”和“可以使用”是两个完全不同的东西。库定义了.valid(),但这并不意味着它可以安全使用。我的观点是,检查存在是不够的。 “简单初始化” - 我不明白这是如何解决我的问题。在**'$('#myform')。validate()'被调用,'.valid()'在该上下文中不起作用之前,我的小部件被初始化为**。这就是问题。 – mpen
@Mark,那么为什么在你初始化依赖'.valid()'的小部件之前,你不能调用'.validate()'***? – Sparky
由于我的表单是如何构建的。小部件在''后立即初始化。我喜欢那样;为什么我要延迟实例化? '.validate()'OTOH只能在''AFAIK之后才能发生。 – mpen