2012-09-25 90 views
2

我是新來淘汰js。我需要有一個用戶將在文本框中輸入日期的驗證器。因爲這寫代碼就像延遲敲除驗證

ko.validation.rules['date'] = { 
    validator: function (value, validate) { 
     //Custom logic 
    }, 
    message: 'Please type proper date' 
}; 

self.userDate = ko.observable(new Date()).extend({date: true }); 

這是工作正常,在選項卡上。但我需要在延遲時調用此驗證(當用戶停止輸入時)。

任何人都可以告訴我如何在延遲時間內調用此驗證?

回答

7

要確保爲用戶鍵入的視圖模型進行更新,使用valueUpdatebinding

<input data-bind="value: userDate, valueUpdate: 'afterkeydown'" />

你那麼節流觀察到:

self.userDate = ko.observable(new Date()).extend({ 
    throttle: 1000, //<- time in ms to wait before validation 
    date: true 
}); 

油門在這種情況下,等待1000最後一次註冊輸入事件後執行驗證。

+0

謝謝安德斯...我正在嘗試afterKeyUp這並沒有解僱..這是我需要的代碼.. – san

+0

太棒了!淘汰賽是一個可愛的框架。一旦你瞭解它,它幾乎就像作弊。 :) –

+0

:) ... Ya,真的 – san