Dojo 以编程方式验证 TextBox
Posted
技术标签:
【中文标题】Dojo 以编程方式验证 TextBox【英文标题】:Dojo Programmatically validate TextBox 【发布时间】:2013-06-03 14:52:22 【问题描述】:我正在尝试以编程方式创建一个 dojo 表单并在单击按钮时验证输入 TextBox。但是当我尝试验证时,我得到一个错误“dijit.byId(..) is undefined. 下面是代码:
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);
);
但是现在当我单击“继续”按钮时,我收到错误 dijit.byId(...) is undefined
如何验证此文本框?
【问题讨论】:
【参考方案1】:您从未为nametb
设置ID,因此dijit.byId()
无法找到文本框并引发错误。试试
nametb: new dijit.form.TextBox(
name: "name",
type: "text",
id: "nametb",
【讨论】:
我按照你说的做了,但它仍然允许提交表单。经过长时间的努力,我还添加了 dijit.byId("nametb").get('value').length == 0 以使其正常工作。查看问题的变化。 @zulq 你还有什么问题吗? @zulq 您仍然没有在 OP 中将id
分配给 nametb
。
我只是没有显示完整的复制粘贴代码。我只是在这里编辑了一个,但我的代码有一个 id。它现在工作正常,但也只有长度检查,谢谢。【参考方案2】:
在指定的小部件上试试这个:
// validate nametb textbox
dijit.byId("nametb").validate();
或者您可以像这样验证表单:
if (dijit.byId("yourForm").validate())
// do something if your form is valid
else
// show error message
【讨论】:
以上是关于Dojo 以编程方式验证 TextBox的主要内容,如果未能解决你的问题,请参考以下文章
以编程方式填充组合框 dojo (1.8) 的最佳方法是啥?
dojo 增强网格过滤器 - 以编程方式设置列 A 大于某个数字