dijit/form/SimpleTextarea.js

  • Provides:

    • dijit.form.SimpleTextarea
  • dijit.form.SimpleTextarea

    • type
      Function
    • chains:
      • dijit.form.TextBox: (prototype)
      • dijit.form.TextBox: (call)
    • summary
      A simple textarea that degrades, and responds to
      minimal LayoutContainer usage, and works with dijit.form.Form.
      Doesn't automatically size according to input, like Textarea.
    • example
      
      	<textarea dojoType="dijit.form.SimpleTextarea" name="foo" value="bar" rows=30 cols=40></textarea>
    • example
      
      	new dijit.form.SimpleTextarea({ rows:20, cols:30 }, "foo");
  • dijit.form.SimpleTextarea.baseClass

    • summary
  • dijit.form.SimpleTextarea.attributeMap

    • summary
  • dijit.form.SimpleTextarea.rows

    • type
      Number
    • summary
      The number of characters per line.
  • dijit.form.SimpleTextarea.cols

    • summary
  • dijit.form.SimpleTextarea.templateString

    • summary
  • dijit.form.SimpleTextarea.postMixInProperties

    • type
      Function
    • source: [view]
      define("dijit/form/SimpleTextarea", ["dojo", "dijit", "dijit/form/TextBox"], function(dojo, dijit) {


      dojo.declare("dijit.form.SimpleTextarea",
       dijit.form.TextBox,
       {
       // summary:
       //  A simple textarea that degrades, and responds to
       //   minimal LayoutContainer usage, and works with dijit.form.Form.
       //  Doesn't automatically size according to input, like Textarea.
       //
       // example:
       // | 
       //
       // example:
       // | new dijit.form.SimpleTextarea({ rows:20, cols:30 }, "foo");


       baseClass: "dijitTextBox dijitTextArea",


       attributeMap: dojo.delegate(dijit.form._FormValueWidget.prototype.attributeMap, {
        rows:"textbox", cols: "textbox"
       }),


       // rows: Number
       //  The number of rows of text.
       rows: "3",


       // rows: Number
       //  The number of characters per line.
       cols: "20",


       templateString: "",


       postMixInProperties: function(){
        // Copy value from srcNodeRef, unless user specified a value explicitly (or there is no srcNodeRef)
        // TODO: parser will handle this in 2.0
        if(!this.value && this.srcNodeRef){
         this.value = this.srcNodeRef.value;
        }
        this.inherited(arguments);
    • summary
  • dijit.form.SimpleTextarea.buildRendering

    • type
      Function
    • source: [view]
        this.inherited(arguments);
        if(dojo.isIE && this.cols){ // attribute selectors is not supported in IE6
         dojo.addClass(this.textbox, "dijitTextAreaCols");
        }
    • summary
  • dijit.form.SimpleTextarea.filter

    • type
      Function
    • parameters:
      • value: (typeof String)
    • source: [view]
      define("dijit/form/SimpleTextarea", ["dojo", "dijit", "dijit/form/TextBox"], function(dojo, dijit) {


      dojo.declare("dijit.form.SimpleTextarea",
       dijit.form.TextBox,
       {
       // summary:
       //  A simple textarea that degrades, and responds to
       //   minimal LayoutContainer usage, and works with dijit.form.Form.
       //  Doesn't automatically size according to input, like Textarea.
       //
       // example:
       // | 
       //
       // example:
       // | new dijit.form.SimpleTextarea({ rows:20, cols:30 }, "foo");


       baseClass: "dijitTextBox dijitTextArea",


       attributeMap: dojo.delegate(dijit.form._FormValueWidget.prototype.attributeMap, {
        rows:"textbox", cols: "textbox"
       }),


       // rows: Number
       //  The number of rows of text.
       rows: "3",


       // rows: Number
       //  The number of characters per line.
       cols: "20",


       templateString: "",


       postMixInProperties: function(){
        // Copy value from srcNodeRef, unless user specified a value explicitly (or there is no srcNodeRef)
        // TODO: parser will handle this in 2.0
        if(!this.value && this.srcNodeRef){
         this.value = this.srcNodeRef.value;
        }
        this.inherited(arguments);
       },


       buildRendering: function(){
        this.inherited(arguments);
        if(dojo.isIE && this.cols){ // attribute selectors is not supported in IE6
         dojo.addClass(this.textbox, "dijitTextAreaCols");
        }
       },


       filter: function(/*String*/ value){
        // Override TextBox.filter to deal with newlines... specifically (IIRC) this is for IE which writes newlines
        // as \r\n instead of just \n
        if(value){
         value = value.replace(/\r/g,"");
        }
        return this.inherited(arguments);
    • summary
  • dijit.form.SimpleTextarea._previousValue

    • summary
  • dijit.form.SimpleTextarea._onInput

    • type
      Function
    • parameters:
      • e: (typeof Event)
    • source: [view]
      define("dijit/form/SimpleTextarea", ["dojo", "dijit", "dijit/form/TextBox"], function(dojo, dijit) {


      dojo.declare("dijit.form.SimpleTextarea",
       dijit.form.TextBox,
       {
       // summary:
       //  A simple textarea that degrades, and responds to
       //   minimal LayoutContainer usage, and works with dijit.form.Form.
       //  Doesn't automatically size according to input, like Textarea.
       //
       // example:
       // | 
       //
       // example:
       // | new dijit.form.SimpleTextarea({ rows:20, cols:30 }, "foo");


       baseClass: "dijitTextBox dijitTextArea",


       attributeMap: dojo.delegate(dijit.form._FormValueWidget.prototype.attributeMap, {
        rows:"textbox", cols: "textbox"
       }),


       // rows: Number
       //  The number of rows of text.
       rows: "3",


       // rows: Number
       //  The number of characters per line.
       cols: "20",


       templateString: "",


       postMixInProperties: function(){
        // Copy value from srcNodeRef, unless user specified a value explicitly (or there is no srcNodeRef)
        // TODO: parser will handle this in 2.0
        if(!this.value && this.srcNodeRef){
         this.value = this.srcNodeRef.value;
        }
        this.inherited(arguments);
       },


       buildRendering: function(){
        this.inherited(arguments);
        if(dojo.isIE && this.cols){ // attribute selectors is not supported in IE6
         dojo.addClass(this.textbox, "dijitTextAreaCols");
        }
       },


       filter: function(/*String*/ value){
        // Override TextBox.filter to deal with newlines... specifically (IIRC) this is for IE which writes newlines
        // as \r\n instead of just \n
        if(value){
         value = value.replace(/\r/g,"");
        }
        return this.inherited(arguments);
       },


       _previousValue: "",
       _onInput: function(/*Event?*/ e){
        // Override TextBox._onInput() to enforce maxLength restriction
        if(this.maxLength){
         var maxLength = parseInt(this.maxLength);
         var value = this.textbox.value.replace(/\r/g,'');
         var overflow = value.length - maxLength;
         if(overflow > 0){
          if(e){ dojo.stopEvent(e); }
          var textarea = this.textbox;
          if(textarea.selectionStart){
           var pos = textarea.selectionStart;
           var cr = 0;
           if(dojo.isOpera){
            cr = (this.textbox.value.substring(0,pos).match(/\r/g) || []).length;
           }
           this.textbox.value = value.substring(0,pos-overflow-cr)+value.substring(pos-cr);
           textarea.setSelectionRange(pos-overflow, pos-overflow);
          }else if(dojo.doc.selection){ //IE
           textarea.focus();
           var range = dojo.doc.selection.createRange();
           // delete overflow characters
           range.moveStart("character", -overflow);
           range.text = '';
           // show cursor
           range.select();
          }
         }
         this._previousValue = this.textbox.value;
        }
        this.inherited(arguments);
    • summary
  • dijit.form.SimpleTextarea.value

    • summary
  • dijit.form.SimpleTextarea.textbox.value

    • summary
  • dijit.form

    • type
      Object
    • summary
  • dijit

    • type
      Object
    • summary