Dojo以编程方式验证TextBox

时间:2013-06-03 14:52:22

标签: javascript dojo

我正在尝试以编程方式创建一个dojo表单,并在按钮单击时验证输入TextBox。但是当我尝试有效时,我得到一个错误“dijit.byId(..)是未定义的。下面是代码:

var form = new dijit.form.Form({ 
                                    nametb: new dijit.form.TextBox({
                                        name: "name",
                                        type: "text",
                                        required: true,
                                        placeHolder: "Your Full Name"
                                    },"nametb"),
                                    subBtn: new dijit.form.Button({
                                        label: "Proceed",
                                        onClick: function(){
                                            if(dijit.byId("nametb").get('value') == null || dijit.byId("nametb").get('value').length == 0 )
                                                {
                                                    alert("Please enter Name");
                                                    return false;
                                                }

                                        }
                                    }),
                                    cnclBtn: new dijit.form.Button({
                                        label: "Cancel",
                                        onClick: function(){
                                            dia.hide();
                                        }
                                    }),
                                    postCreate: function(){
                                        this.domNode.appendChild(this.nametb.domNode);
                                        this.domNode.appendChild(this.subBtn.domNode);
                                        this.domNode.appendChild(this.cnclBtn.domNode);
                                    }
                                });

但现在当我点击Proceed按钮时,我收到错误dijit.byId(...) is undefined

如何验证此TextBox?

2 个答案:

答案 0 :(得分:2)

您永远不会为nametb设置ID,因此dijit.byId()无法找到文本框并引发错误。尝试

nametb: new dijit.form.TextBox({
    name: "name",
    type: "text",
    id: "nametb",

答案 1 :(得分:0)

在指定的小部件上尝试使用它:

// validate nametb textbox
dijit.byId("nametb").validate();

或者你可以像这样验证表格:

if (dijit.byId("yourForm").validate()) { 
   // do something if your form is valid
} else {
   // show error message
}