使用Struts 2 + Dojo框架进行表单验证

时间:2011-10-19 16:01:36

标签: dojo struts2 struts validation struts-validation

我是Dojo的新手,我正在尝试使用Struts2标签验证表单(如本示例的最后一个:http://dojotoolkit.org/documentation/tutorials/1.6/validation/),但我不能。 使用“经典”HTML表单(标签,....)一切都很好,但使用Struts 2标签(),“必需”验证不起作用...

这是我的代码:

    <script type="text/javascript">
        dojo.require('dojox.validate');
        dojo.require('dojox.validate.us');
        dojo.require('dojox.validate.web');

        /* basic dijit classes */
        dojo.require('dijit.form.CheckBox');
        dojo.require('dijit.form.Textarea');
        dojo.require('dijit.form.FilteringSelect');
        dojo.require('dijit.form.TextBox');
        dojo.require('dijit.form.ValidationTextBox');
        dojo.require('dijit.form.DateTextBox');
        dojo.require('dijit.form.TimeTextBox');
        dojo.require('dijit.form.Button');
        dojo.require('dijit.form.RadioButton');
        dojo.require('dijit.form.Form');
        dojo.require('dijit.form.DateTextBox');

        /* basic dojox classes */
        dojo.require('dojox.form.BusyButton');
        dojo.require('dojox.form.CheckedMultiSelect');
    </script>

<s:form dojoType="dijit.form.Form" method="post" id="toto" 
 theme="simple">
      <script type="dojo/method" event="onSubmit">
            if(this.validate()) {
               return confirm('Form is valid, press OK to submit');
            } else {
               alert('Formulaire invalide');
             return false;
            }
return true;
            </script>
            <table cellpadding="0" cellspacing="2">
                <tr>
                    <td valign="top"><strong>First Name*: </strong></td>
                    <td>
                        <s:textfield
                            name="email"
                            id="email"
                            placeholder="Your email" 
                            dojoType="dijit.form.ValidationTextBox" 
                            required="true"
                            missingMessage="Obligatoire !" />
                    </td>
                </tr>
            </table>

                <s:submit
                    value="Submit Form" 
                    label="Submit Form"
                    id="submitButton" 
                    dojoType="dijit.form.Button"/>
            </s:form> 

如何使用struts标签检查我的字段是否为空? 谢谢大家

1 个答案:

答案 0 :(得分:1)

您需要检查以确保您呈现的内容是Dojo所期望的。我不知道当前的Dojo验证是如何工作的,但是:

“required”属性是<s:textfield>的属性,它可能不会被渲染,因此Dojo不可用 - 如果这是Dojo用来确定是否需要字段的那些。