2013-05-15 56 views
0

而不是在每個文本輸入中重複此設置?是否有可能將valueUpdate:'afterkeydown'設置爲Knockout.js中的默認值UpdateUp?

要清楚,我說的是這樣的:我輸入

<input type="text" name="email"data-bind="value: email, valueUpdate:'afterkeydown'" /> 

90%,我更喜歡這個上面'change' - 當前的默認。

+0

你嘗試過什麼樣的方法? – Jeroen

+0

截至去年,答案似乎是「你不能,這裏有一些解決方法。」自開始討論以來,淘汰賽不斷進行改進,並且已經看到了主要的版本號變更(第2版至第3版)。有沒有辦法做到這一點呢? – Josh

回答

0

如果能夠「標記」一類目標的投入,你可以試試這個:

$('.yourClass').attr('data-bind', "value: email, valueUpdate:'afterkeydown'"); 

我希望它能幫助

+0

這是一個選項,但仍然存在樣板代碼 - 額​​外的類。 「valueUpdate:'afterkeydown'」在這種情況下可能不會那麼長,並且顯示更多的「含義」。 –

1

您不能直接對所有的文本輸入設置的默認功能。你可以做的反而是創建一個模板輸入和所有的則可以只是例如

<!-- ko template:{name:'input-template', data: email}--><!--/ko--> 

這些模板通過使用無容器符號避免創建額外的HTML元素

那麼就定義模板,任何你想要的:

<script type="text/html" id="input-template"> 
    <input type="text" name="$data" data-bind="value: $data, valueUpdate:'afterkeydown'"/> 
</script> 
+0

從技術上講,這是可行的,但我寧願有一些東西看起來更像普通的HTML。感謝您的回答:) –

+0

請問爲什麼傳統的html不是出於美學的原因,因爲如果您已經在使用淘汰賽,像模板和無容器符號這樣的東西可以真正釋放出很多淘汰賽的力量,和其他開發人員已經有了學習曲線。 – mikeswright49

+0

這的確是關於美學。在挑剔的一面,我可能有點太過分了,但是現在我更願意在隱藏輸入元素本身之前添加樣板「valueUpdate:'afterkeydown'」。它只是給了我更多的「意義」。個人喜好我猜:) –

0

由於在淘汰賽沒有選項可以更改的方式valueUpdate默認的作品,你唯一的選擇是改變基因敲除庫源,使其工作你想要的方式。如果庫已更新,則必須再次進行此更改,或者可以要求Knockout的開發人員添加配置選項,以便可以更改默認值UpdateUp事件。

相關問題