如何使用dijit/Textarea验证(Dojo 1.9)?

Dan*_*lor 0 validation dojo textarea dojo-1.9

我有textarea这是必填字段.我发现帖子暗示Dojo没有对Textarea进行验证,但在Dojo 1.9中,有一个"必需"的参数.

我做了以下事情:

new Textarea({required:true, value:""}, query('[name=description]')[0])
Run Code Online (Sandbox Code Playgroud)

但效果不是我所期望的.texarea总是有红色边框,即使字段没有聚焦(例如,与ValidationTextBox相反).但是当我打电话时:

form.validate()
Run Code Online (Sandbox Code Playgroud)

即使texarea为空,验证也会通过.

是否有可能让Textare的行为与ValidationTextBox中的相同,或者就目前而言,该组件的验证尚未准备就绪,我必须编写自定义版本(如链接帖子中)或等待下一个Dojo?

Dan*_*lor 5

我使用SimpleTextArea和ValidationTextArea的mixin完成了它:

define(["dojo/_base/declare", "dojo/_base/lang", "dijit/form/SimpleTextarea", "dijit/form/ValidationTextBox"],
function(declare, lang, SimpleTextarea, ValidationTextBox) {

  return declare('dijit.form.ValidationTextArea', [SimpleTextarea, ValidationTextBox], {
    constructor: function(params){
      this.constraints = {};
      this.baseClass += ' dijitValidationTextArea';
    },    
    templateString: "<textarea ${!nameAttrSetting} data-dojo-attach-point='focusNode,containerNode,textbox' autocomplete='off'></textarea>"
  })
})
Run Code Online (Sandbox Code Playgroud)

另请参阅我在textarea的Dojo验证中的答案