繁体   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