0

我正在尝试验证一个文本框:

我有 2 个文本框。如果第一个文本框或第二个文本框的值有效,则表单将成功提交,如果两个文本框均为空,则会显示错误。

这是我的代码:

<script>
           dojo.require("dojo.parser"); 
           dojo.require("dijit.form.ValidationTextBox"); 
           dojo.require("dijit.form.Form");
            dojo.require("dijit.form.Button");
                </script>
    </head>
    <body class="claro">
        <div data-dojo-type="dijit.form.Form" action="" id="myForm" data-dojo-id="myForm" method="post">
                <script type="dojo/method" data-dojo-event="onReset">
                    return confirm('Press OK to reset values');
                </script>
                <script type="dojo/method" data-dojo-event="onSubmit">
                    if(this.validate()){
                    return true;
                    }else{
                    if((dijit.byId('a').value==null && dijit.byId('b').value!=null) ){

                    alert('Valid data');
                    return true;
                    }
                    alert('Form contains invalid data.  Please correct first');
                    return false;
                    }
                    return true;
                </script>

                <input type="text" name="a" dojoType="dijit.form.ValidationTextBox" required="true" id="a"/>
        <input type="text" name="b" dojoType="dijit.form.ValidationTextBox" required="true" id="b"/>
        <button data-dojo-type="dijit.form.Button" type="submit" name="submitButton" value="Submit">Submit</button>
        </div>

它不起作用,有什么建议吗?

4

1 回答 1

0

文本框的值不会为空,如果在声明中没有提供任何值,它将被初始化为空字符串。对于您的情况,请尝试按如下方式更改条件:

if((!dijit.byId('a').value && !dijit.byId('b').value)){
    this.validate();
    alert('Not Valid Form!');
    return false;
} else {
    return true;
}
于 2013-09-06T03:54:46.223 回答