【发布时间】:2010-06-05 00:29:21
【问题描述】:
我想在我的用户表单中的某些字段上禁用客户端验证。目前,我有两组字段,根据前一个下拉列表的值显示。即,如果下拉列表设置为值“A”,则表单中将出现 1 个新字段。如果将下拉列表设置为“值”“ b” 3个新字段,则以表单显示(选择“ a”时,从新的form字段中相互排除)。目前,我的 Dojo 客户端验证失败,因为未向用户显示的字段(因此无法将数据插入这些字段)无法验证。
目前我确定我可以将“验证”属性设置为返回 true,如下所示:
<input type="text" id="companycity" name="companycity" class="textinput" value="<?php echo set_value('companycity'); ?>" style="<?php if(isset($errorData['companycity'])){echo $errorData['companycity'];} ?>"
dojotype="dijit.form.ValidationTextBox"
required="true" trim="true" validate='return true'"
regexp="([a-zA-Z]{1,25})"
invalidMessage="Invalid value. Must be between 1 and 25 alphabetic characters long.">
这解决了我的隐藏字段问题。然而,这意味着当该字段对用户可见时不会执行任何验证(即 validate 属性仍设置为返回 true)。
我尝试在向用户显示字段时删除 validate 属性,如下所示:
dijit.byId('companycode').attr('validate','');
这只是将属性设置为空。然而,这会在萤火虫中出现错误,提示未找到验证方法,因此我认为这意味着我没有正确删除此属性或删除此属性不是执行此操作的适当方法。
我还研究了覆盖验证器方法here,但这似乎也不是我想要的。我不想重写所有验证方法来代替 dojo。
我只想让 dojo 不验证该字段是否对用户不可见。感谢您的任何建议或帮助。
【问题讨论】:
标签: javascript validation dojo