2010-06-08 45 views
0

我在這裏遇到了一些問題。 我有以下規則爲我的領域之一:this.optional()在jQuery驗證方法中似乎不起作用

StartDate: { 
    required: isDelayed, 
    dateRU: true 
} 

isDelayed()返回false,所以我想起始日期字段應該是可選的。但是,如果我檢查它在我的dateRU方法中:

$.validator.addMethod(
    "dateRU", 
    function(value, element) { 
     return this.optional(element) || isValidDate($.trim(value)); 
    }, 
    "Date is incorrect" 
); 

this.optional(element)總是爲StartDate返回false。我無法弄清楚什麼是錯的。有任何想法嗎?

UPD。僅當不需要元素時,optional()是否返回true AND是否爲空?因爲這可能是我的問題。

回答

1

我的猜測是你的isDelayed函數沒有返回你所期望的,使得它是必需的。我使用這個測試你的代碼,它的工作原理:

function isDelayed() { return false; } 

You can see a full working demo here,試試,看看什麼在你的代碼演示不同的,我最好的猜測是,isDelayed()方法,或者您的實際,並張貼代碼之間的差異。