2010-09-21 53 views
0

我有一个非常大的窗体,其中包含许多需要验证的日期字段。大部分情况下,这对于jQuery验证插件来说非常简单。但我发现一个用例,在这里我不是很确定的是“正确”的决策是:在jQuery验证中将特定字段值定义为语义上等于空

我有一个日期字段的值默认为一个抽象的例子:

<input id="date_field" name="date_1" class="" type="text" value="tt.mm.jjjj" maxlength="10"/> 

我希望这个字段是可选的。所以在验证选项,我宣布:

date_field:   {date: true} 

Ofcourse,这是不正确的,因为如果用户没有输入任何内容,便离开了默认的“DD.MM.YYYY”值,验证器会检查看看这个值是否是一个日期,哪个不是,并抛出一个错误。

我可以编写自己的自定义日期验证程序,只是将“dd.mm.jjjj”添加到正确日期列表中。 但在同一个表单中的不同用例中,我有一个既是日期又是必需的字段。如果我在该字段上使用自定义验证器,则即使用户没有自己输入任何内容,表单也会验证。但是由于自定义验证器允许“dd.mm.jjjj”字符串被接受,并且该字符串字段显然不是空的,因此该表单将被接受。

因此,我认为最佳解决方案是“扩展”验证器将字段解释为空的情况。

换句话说,我想对验证器说:“嘿,日期字段也是空的,如果他们有这个字符串作为值”。

不幸的是,我的jQuery/JavaScript技能有点有限,我的尝试迄今未能构建像上述任何东西。

另一方面,这一定是一个很常见的问题,但我还没有找到一个记录的解决方案。所以也许我错过了一些东西?

谢谢!

回答

0

我最终只是用我自己定制的“必需”规则来扩展jQuery Validator,就像“日期”的本地化一样。很明显:)