簡體   English   中英

如果數據鏈接值不變,則在jsViews中強制重新驗證

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM