Extjs4 - remote validation

前端 未结 2 1472
面向向阳花
面向向阳花 2021-02-15 04:35

I\'d like having a remote validator for a textfield. My PHP returns true/false value. I\'ve tried something like this:

{
   xtype: \'textfield\',
   fieldLabel:          


        
相关标签:
2条回答
  • 2021-02-15 05:12

    {
     fieldLabel : 'Username',
     name : 'username',
     allowBlank : false,
     validFlag : true,
     validator : function() {
      return this.validFlag;
     },
     listeners : {
      'change' : function(textfield, newValue, oldValue) {
       var me = this;
       Ext.Ajax.request({
        url : 'rest/users?action=validate&username=' + newValue,
        success : function(response) {
         // Ausuming responseText is {"valid" : true}
         me.validFlag = Ext.decode(response.responseText).valid ? true : 'The username is duplicated!';
         me.validate();
        }
       });
      }
     }
    }

    this html code i tested(extjs version is 5.0) ,is ok ,it is from TonyTuan'sBlog , all of this you can see this link : http://code.tonytuan.org/2013/06/extjs-remote-validator-for-form-field.html

    0 讨论(0)
  • 2021-02-15 05:16

    maybe you shouldnt use the validator then, add a listner on change for the textfield and use the methods markInvalid and clearInvalid for displaying the validation.

    {
       xtype: 'textfield',
       fieldLabel: 'Field',
       allowBlank: false,
       textValid: false,
       validator: function(){
           return this.textValid;
       },
       listeners : {
         'change': function(textfield,newValue,oldValue) {
            Ext.Ajax.request({
              url: 'psc/validate',
              params: { psc: value },
              scope: textfield,
              success: function(response){
                 if (response.responseText){
                   this.clearInvalid();
                   this.textValid = true;
                 } else {
                   this.markInvalid('field is not valid');
                   this.textValid = false;
                 }                             
              }
            });
          }       
       }
    }
    

    I haven;t tried it but could work for your aproach

    EDIT i've made some modifications to the code to include the validator..

    0 讨论(0)
提交回复
热议问题