我想禁用我用戶表單中某些字段的客戶端驗證。目前,我有兩組顯示取決於上一個下拉列表的值的字段。即如果下拉列表被設置爲值「A」,則1個新字段出現在表格中。如果下拉列表設置爲值「B」,則3個新字段出現在表單中(當選擇「A」時,新表單字段與新表單字段互斥)。目前,我的Dojo客戶端驗證失敗,因爲未向用戶顯示的字段(因此無法將數據插入到這些字段中)無法驗證。在某些字段上禁用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.">
這解決了我的問題的隱藏字段。但是,這意味着當該字段對用戶可見時(即,驗證屬性仍設置爲返回true),不執行驗證。
我曾試圖消除驗證屬性時字段顯示給用戶,像這樣:
dijit.byId('companycode').attr('validate','');
這只是設置屬性不了了之。然而,這在螢火蟲中說錯誤的方法沒有找到驗證方法,所以我認爲我沒有正確地移除這個屬性,或者移除這個屬性不是適當的方法來做到這一點。
我也看過重寫驗證方法here但這似乎並不是我想要的。我不想重寫所有的驗證方法來代替dojo的。
我只想讓dojo不要驗證該字段對用戶不可見。感謝您的任何建議或幫助。
我最初嘗試過這種方式,但它不再正確評估。它將required屬性設置爲「true」(字符串)而不是true(bool) – 2010-06-15 16:49:56