2010-09-21 48 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,就像「日期」的本地化一樣。很明顯:)