[英]Force re-validation in jsViews if data-linked value doesn't change
使用jsViews進行驗證(使用jsviews.com/#samples中的代碼)和jQuery UI Autocomplete時遇到問題:
我在字段上有一個轉換器(convertBack),可將輸入的文本轉換回基於字典的GUID。 如果該字段為空或無效,則返回null。
問題是jsViews不會注意到從一個空值到另一個空值的更新(即空白到無效,反之亦然)。 我嘗試通過將對驗證標簽上的refreshValidates()
的調用手動添加到DOM onChange
來解決此問題,但是輸入的任何無效值都將被刪除。
問題:有沒有一種方法可以在jsViews中本地實現重新驗證?
我更改了jsViews驗證代碼以允許檢查顯示的值:
[ onAfterLink
]:它傳遞當前(顯示的)值,不僅傳遞已轉換的值(在兩種情況下均為null
):
(...)
tag.validate(tagCtx.args[0], tag.linkedElem.val()); // Validate initial data
tag.linkedElem
是您要在其上進行雙向數據綁定(和驗證)的HTML元素。
因此,如果您只想獲取輸入元素的當前值,可以, tag.linkedElem.val()
很好。
在下面的評論后添加了其他回復:
查看您的jsfiddle: http : //jsfiddle.net/w43hD/1/
您正在使用
data-link="{validate DictionaryValue inDictionary='dictionary' convert='fromGuid' convertBack='toGuid'}"
當DictionaryValue
綁定到更改時,它將觸發驗證。 但是,您會將無效的用戶輸入字符串和空字符串都映射到相同的DictionaryValue為null。 因此,從無效字符串切換為空字符串當然不會觸發驗證。
您可以更改getKey
轉換器以將空字符串映射到非null以外的其他內容,例如“”-然后它可以工作。 查看更新的版本: http : //jsfiddle.net/w43hD/2/
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.