Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Dijit控件的Spring表单字段错误_Spring_Dojo - Fatal编程技术网

Dijit控件的Spring表单字段错误

Dijit控件的Spring表单字段错误,spring,dojo,Spring,Dojo,我有一个使用spring表单控件的简单表单。我还在控件上使用dojoType 例如: 我正在用dojo进行表单验证。我还使用spring添加了一些服务器端验证。我试图使用springs验证来更新我的dijit字段,以突出显示错误。这就是我想到的。这感觉像一个黑客,我想知道是否有人有更好的解决方案 首先,在表单的最底部有一个隐藏的span元素,它列出了从spring:hasBindErrors返回的所有错误,如下所示: <span id="allErrors" style="visibili

我有一个使用spring表单控件的简单表单。我还在控件上使用dojoType

例如:

我正在用dojo进行表单验证。我还使用spring添加了一些服务器端验证。我试图使用springs验证来更新我的dijit字段,以突出显示错误。这就是我想到的。这感觉像一个黑客,我想知道是否有人有更好的解决方案

首先,在表单的最底部有一个隐藏的span元素,它列出了从spring:hasBindErrors返回的所有错误,如下所示:

<span id="allErrors" style="visibility:hidden">
     <spring:hasBindErrors name="myForm">
          <c:forEach var="error" items="${errors.allErrors}">
              ${error.field}
          </c:forEach>
     </spring:hasBindErrors>
</span>
(我之所以要进行替换,是因为spring生成的id属性没有括号,但保留在name属性上。此外,错误由name而不是id引用。)

这很好,但我只是想知道是否有其他人遇到过类似的解决方案,或者是否有更简单的方法来做同样的事情

谢谢

        dojo.addOnLoad(displayErrors);

    function displayErrors() {
        dojo.forEach(dojo.trim(dojo.byId("allErrors").innerHTML).split(" "), function(value) {
            var newVal = value.replace(/[\[\]]/g, '');
            if (dojo.byId(newVal+'.errors') != 'undefined') {
                dijit.byId(newVal).state = "Error";
                dijit.byId(newVal)._setStateClass();
            }
        });
    }