Dojo/Dijit SimpleTextarea和RadioButton(与Spring JS集成)验证通过';必需的';属性不受支持,但在FireFox中有效?

Dojo/Dijit SimpleTextarea和RadioButton(与Spring JS集成)验证通过';必需的';属性不受支持,但在FireFox中有效?,dojo,dijit.form,spring-js,Dojo,Dijit.form,Spring Js,我在将DojoJavaScript库与Spring框架集成时遇到了一些问题。具体来说,问题是如何验证文本区域和单选按钮。我正在使用SpringJS库来装饰标准html表单元素,例如 <form:input path="actionDescription" id="actionDescriptionId"/> <script type="text/javascript"> Spring.

我在将DojoJavaScript库与Spring框架集成时遇到了一些问题。具体来说,问题是如何验证文本区域和单选按钮。我正在使用SpringJS库来装饰标准html表单元素,例如

<form:input path="actionDescription" id="actionDescriptionId"/>
                    <script type="text/javascript">
                        Spring.addDecoration(new Spring.ElementDecoration({
                            elementId : "actionDescriptionId",
                            widgetType : "dijit.form.SimpleTextarea",
                            widgetAttrs : { disabled : false,
                                            required: true,
                                            rows: "4",
                                            cols: "60",
                                            placeHolder: "Enter description of fault",
                                            style: "width:auto;height:50px;"    
                                 }}));  
                    </script>

Spring.add装饰(new Spring.element装饰)({
elementId:“actionDescriptionId”,
widgetType:“dijit.form.SimpleTextarea”,
WidgeAttrs:{已禁用:false,
要求:正确,
行:“4”,
科尔斯:“60”,
占位符:“输入故障描述”,
样式:“宽度:自动;高度:50px;”
}}));  
我一直在使用FireFox(使用Firebug)开发,直到现在我才意识到(在查看Dojo/Dijit文档后)Dijit.form.SimpleTextArea不支持“required”属性。我以前从未检查过这个,因为它在FireFox中运行良好。我有一个表单按钮,点击该按钮将验证所有装饰元素,在firefox中,包括文本区域和单选按钮在内的所有组件将弹出一个漂亮的工具提示,指示该字段是必需的。代码行的用途如下:

<script type="text/javascript">
        Spring.addDecoration(
                new Spring.ValidateAllDecoration({elementId:'proceed', event:'onclick'}));
    </script>

春季装饰(
validateAllCorlation({elementId:'procedure',event:'onclick'});
这很好,因为它可以防止表单提交,直到所有必填字段都完成。单选按钮弹出一条漂亮的消息,说明用户必须选择其中一个选项,文本区域弹出一条漂亮的消息,告诉用户键入一些内容。但是,它在Safari或IE中不起作用。验证不适用于这些其他浏览器上的文本区域和单选按钮,因此使用服务器端验证将用户重定向回表单。虽然这是可行的,但我还是更喜欢首先阻止表单提交,并提供一致的错误报告,而不是混合使用客户端和服务器端错误消息

当dijit textarea组件不支持“required”属性时,我真的很难理解为什么它能在firefox中工作?我喜欢使用SpringJS来增强基本组件的想法,但我真的不明白在FireFox中用digit.form.SimpleTextarea装饰元素并进行验证是如何工作的,而根据digit文档,没有任何受支持的验证


我想知道是否有其他使用SpringJS/SpringDojo集成的Spring开发人员遇到过这种行为,以及他们是否对其工作原理有更深入的了解。我真正想要的是在包括IE在内的所有浏览器中验证文本区域。

好的,所以问题在于Firefox中的HTML5为文本区域和单选按钮提供了验证行为。由于我的目标受众是IE(可能还有IE6),我不能依赖HTML5表单验证,因此我不得不承认DOJO的文本区域和单选按钮的Dijit小部件不支持验证


多亏了,我已经创建了一个变通方法来启用textareas上的验证。但是,对于单选按钮,我提供了一个默认选择,以消除验证的需要

经过一番挖掘,我认为firefox中的radiobutton和textarea验证之所以有效,是因为HTML5表单验证支持。由于我的IE和Safari版本都不支持HTML5,这就解释了功能上的差异。