0

我坚持使用剑道网格中的内联验证。 我不想在失去焦点后进行验证。我想在打字后立即验证。所以我开始使用HTML5验证器。它工作得很好,但问题是我不能回答这两个问题:输入在HTML5中设置错误消息无效并防止来自网格中剑道的默认错误消息

哪些事件设置输入从有效到无效。

哪个事件显示错误消息。

我目前的工作:https://dojo.telerik.com/OSONo/56

问候

卢卡斯

回答

-1

解决了我自己的问题。我将编辑这篇文章,以便你能看到我的意思,但首先我要给dojo projcet。

https://dojo.telerik.com/OSONo/64

我编辑:

我为我以前的anwser对不起,我只是想给他我的解决方案我在评论提及。

在我的解决方案中,我创建了一个事件监听器,如何监听所有输入元素。当有东西改变它时,保存当前的光标位置(它的导入以支持),然后触发我的“更改”事件。 “更改”事件检查它是有效还是无效。如果它无效,那么剑道验证程序会显式地显示错误消息(而不是默认的模糊事件)。

var ValidierungCheckClass = (function() { 
return { 
    AllDOMElements: function() { 
     $('body').on('input', function() { 
      var myActiveElement = $(':focus'); 

      if ((myActiveElement) && (myActiveElement.context.activeElement.nodeName.toLowerCase() !== "body")) { 
       var myActiveDOMElement = myActiveElement[0], 

        start = myActiveDOMElement.selectionStart, //just for IE Support 
        end = myActiveDOMElement.selectionEnd;   //just for IE Support 

       myActiveElement.trigger("change"); 

       myActiveDOMElement.setSelectionRange(start, end); //just for IE Support 

      } 
     }) 
    } 
    } 
}); 

更改事件是从kendo创建的,所以您不必编写自己的。

至少您必须在创建网站时调用该方法。

<script> 
     ValidierungCheckClass().AllDOMElements(); 
</script> 

这是我对我的问题的解决方案。

此致敬意。

+0

只是一个链接不是一个答案(即使你 - 在某些时候 - 可能会添加额外的信息;等到_that_时刻回答问题)。 –

+0

虽然这个链接可能回答这个问题,但最好在这里包含答案的重要部分,并提供供参考的链接。如果链接页面更改,则仅链接答案可能会失效。 - [来自评论](/ review/low-quality-posts/18676344) – iBug

+0

请使用您问题上的修改链接添加更多信息。后回答按钮应该只用于问题的完整答案。 - [来自评论](/ review/low-quality-posts/18676344) –

0

该事件中设置从有效的输入无效。

...

哪个事件显示错误消息。

只是validator.validate(); 错误消息也设定validate()运行kendoValidator。

像这样的东西应该工作:

$(document).on('input propertychange', function() { 
    validator.validate(); 
}); 

警告似乎有些元素背后隐藏的,所以你也可以如下因素errorTemplate添加到您的kendoValidator:

errorTemplate: '<div class="k-widget k-tooltip k-tooltip-validation" style="margin: 0.5em; display: block;"><span class="k-icon k-i-warning"></span>#=message#<div class="k-callout k-callout-n"></div></div>' 

而且整体解决方案: https://dojo.telerik.com/OSONo/66

+0

我解决了一些问题。我的soloution不工作与validator.validate()。,但如果你告诉我我该怎么做,你可以告诉我,我只是一个傻瓜。我真的很感激这:)。 –

+0

我已经添加了如何绑定validate()。这可能比你更容易解决。 – CennoxX

+0

嘿,谢谢你的回答。它在铬中工作得很好。在我的Internet Explorer 11中,它似乎不起作用。你能帮我吗? 感谢Advantage! –