2017-04-06 26 views
0

第一个是作为例外。我试图借用相同的想法显示错误消息当用户尝试尝试使用空值。 我有几个文本字段,我想要显示一个错误消息,当用户点击保存按钮时,必填字段为空或在单击该选项卡上的光标后保持空白 并且不在文本字段中输入任何内容并转到下一个文本字段。任何帮助,将不胜感激。错误消息不显示当文本字段为空,并显示在悬停在

//First code snippet working propely. 
 
this.nameField = new Ext.form.TextField({ 
 
    fieldLabel:getMsg('testXml','global.name') 
 
\t \t ,allowBlank:false 
 
\t \t ,cls:'c-form-field-required' 
 
\t \t ,name:'Name' \t \t \t 
 
\t \t ,blankText: testQR.getMsg('testXml','address.nameV') 
 
    ,maxLength:100 
 
}); 
 
\t 
 
this.formPanel = new Ext.form.FormPanel({ 
 
    labelWidth: 100 
 
    ,labelPad: 10 
 
    ,labelAlign: 'right' 
 
    ,bodyBorder: false 
 
    ,trackResetOnLoad: true 
 
    ,cls: 'testQR-form-panel' 
 
    ,autoScroll: true 
 
    ,defaults: { 
 
\t width: 200 
 
\t ,msgTarget: 'under' 
 
\t ,emptyClass: 'c-form-empty-field' 
 
\t ,invalidClass: 'c-form-invalid' 
 
\t ,validateOnBlur: true 
 
\t ,validationEvent: 'blur' 
 
    } 
 
    ,items:[ 
 
\t this.avKeyField 
 
\t ,this.addrKeyField 
 
\t ,this.nameField 
 
\t ,this.addressCodeField]   \t \t 
 
}); \t 
 

 
/* 
 
Second code snippet is not working as accepted. 
 

 
But when I click on the text field and leave it blank the border of the text field becomes red, 
 
and when I hover over the text field an error message will pop out. \t */ 
 

 
this.descriptionField = new Ext.form.TextField({ 
 
\t fieldLabel: getMsg('testXml', 'description'), 
 
\t allowBlank: false, 
 
\t cls: 'c-form-field-required', 
 
\t name: 'description', 
 
\t blankText: testQR.getMsg('testXml', 'description.required'), 
 
\t maxLength: 50, 
 
\t id:"DescriptionDetails" 
 
    }); 
 

 
this.testFormPanel = new Ext.form.FormPanel({ 
 
       id: 'testItemPanels', 
 
       trackResetOnLoad: true 
 
       ,cls: 'testQR-form-panel' 
 
       ,autoScroll: true 
 
       ,defaults: { 
 
        msgTarget: 'under' 
 
        ,emptyClass: 'c-form-empty-field' 
 
        ,invalidClass: 'c-form-invalid' 
 
        ,validateOnBlur: true 
 
        ,validationEvent: 'blur' 
 
       }, 
 
\t border: false 
 
\t \t  ,autoHeight: true 
 
\t \t  ,bodyStyle: 'padding:1px 1px 1px 1px' 
 
\t \t  ,layout:'table' 
 
\t \t  ,layoutConfig:{ 
 
\t \t \t columns: 3 
 
\t \t  } 
 
\t \t  ,defaults: { 
 
\t \t \t labelSeparator: '', 
 
\t \t \t //margins:'0 0 0 5', 
 
\t \t \t style: 'marginRight: 5px;', 
 
\t \t \t labelAlign: 'top', 
 
\t \t \t layout:'form', 
 
\t \t \t border: false, 
 
\t \t \t bodyStyle:'background:transparent' 
 
\t \t  }, 
 

 
\t items: 
 
\t  [{ 
 
\t \t items:[this.nameField] 
 
\t \t }, 
 
\t \t { 
 
\t \t  items:[this.descriptionField] 
 
\t \t }         
 
\t  ] 
 
      }); 
 
\t \t

+0

我没有在我的ext js文件中定义的额外验证函数。 – Veds

回答

0

应用

validateOnChange:false and allowBlank:false 

在每一个被要求的字段,然后做你的

form.isValid() 

上保存按钮单击处理程序。它会工作。如果它不请提供重新创建问题的小提琴。

+0

验证正在工作,但工作不正常。在点击任何东西甚至保存之前,第一次悬停的错误消息就会出现。我添加了你给的逻辑。看起来它还没有工作。请帮忙。 @Harshit Shah – Veds

+0

你能提供一个小提琴来重现这个问题吗? –

+0

我是EXT JS编码的新手。请问,你能让我知道什么是小提琴手段吗?它查看或保存部分代码? – Veds