【发布时间】:2023-03-06 07:12:01
【问题描述】:
我有一个 dojo 表单,它使用 dojo 表单向导。表单有一个 标签。在表单标签中是一个dojo.wizard.Wizard。向导必须位于表单标签内。向导中有几个向导窗格。
在每个向导窗格上,我都有表单字段。我正在通过调用向导窗格 passFunction 上的方法来执行验证。但是,要使 dojo 验证 工作,我必须在表单上获取子元素并针对表单调用 validate 方法。这会验证整个表单。
这对于我想做的事情是不切实际的,因为第一个窗格有 n 个表单元素,第二个窗格有 n 个元素。当从第一个窗格上的 passFunction 调用 validate 函数时,它会验证其他窗格上尚无法访问的元素。
如何指定要为表单验证的项目?我想仅验证第一个窗格上的项目,然后移动到第二个窗格并仅验证这些项目。下面是我的代码结构:
Jsp
<form data-dojo-type="dijit/form/Form" id="myForm" />
<div data-dojo-type="dojox.widget.Wizard" data-dojo-props="style: 'height:450px; width: 600px'">
<div dojoType="dojox.widget.WizardPane" id="page1" passFunction="validatePage1" >
<input data-dojo-type="dijit/form/ValidationTextBox" data-dojo-props="
regExp: '[\\w]+',
required: true,
invalidMessage: 'First Name Required !'" id="fnameTextBox" title="First Name" placeholder="Your First Name" />
<input data-dojo-type="dijit/form/ValidationTextBox" data-dojo-props="
regExp: '[\\w]+',
required: true,
invalidMessage: 'Last Name Required !'" id="lnameTextBox" title="Last Name" placeholder="Your Last Name" />
</div>
<div dojoType="dojox.widget.WizardPane" id="page2" passFunction="validatePage2" >
<input data-dojo-type="dijit/form/ValidationTextBox" data-dojo-props="
regExp: '[\\w]+',
required: true,
invalidMessage: 'Age Is Required !'" id="ageTextBox" title="Age" placeholder="Your Age" />
<input data-dojo-type="dijit/form/ValidationTextBox" data-dojo-props="
regExp: '[\\w]+',
required: true,
invalidMessage: 'Phone Number Required '" id="phoneTextBox" title="Phone" placeholder="Your Phone Number" />
</div>
</div>
</form>
在 validatePage1 中,我只想验证姓氏和名字字段,一旦完成,当我移至第二页时,我想验证年龄和电话号码。我目前只检查空值。
Javascript
dojo.require("dijit/form/Form");
dojo.require("dijit/form/Button");
dojo.require("dijit/form/ValidationTextBox");
dojo.require("dijit/Tooltip");
function validatePage1(){
var myform = dijit.byId('myForm');
myform.connectChildren();
myform.validate();
}
【问题讨论】:
标签: javascript jquery dojo dijit.form