2016-04-12 2 views
0

У меня есть контроллер доджо.изменить всплывающее сообщение в обязательном поле

<select dojoType="dijit.form.Select" data-dojo-attach-point="drpSomthing" id="drpSomthing" 
       data-dojo-props="regExp:'\\d{5}', required:true, invalidMessage:'Invalid zip code.'"></select> 

Это обязательное поле. Я хочу изменить всплывающее сообщение с «Это значение требуется» на что-то еще. Я попытался использовать "invalidMessage", "promptMessage" и "Missing message", но это не помогло. Hoe я меняю всплывающее сообщение?

рассматривает

Коби

ответ

1

dijit.form.Select получает сообщение от nls: i18n.getLocalization("dijit.form", "validate", this.lang).missingMessage , а не из локального свойства.

Это происходит в postMixInProperties методе dijit.form.Select (см https://github.com/dojo/dijit/blob/master/form/Select.js#L364)

Вы можете сделать две вещи:

  • после того, как ваш dijit.form.Select создан, обновить его свойство _missingMsg

, как это :

mySelect._missingMsg = 'what ever message you want'; 

(но это грязный, как вы изменяете частную собственность)

  • или, более чистый способ: создать новый виджет, расширяя dijit.form.Select где вы переопределить postMixInProperties и использовать этот новый виджет вместо dijit.form.Select

так:

define([ 
 
\t "dojo/_base/declare", 
 
\t "dijit/form/Select" 
 
], function(declare, Select) { 
 
    return declare([Select], { 
 
     postMixInProperties: function(){ 
 
\t \t \t // summary: 
 
\t \t \t // \t \t set the missing message 
 
\t \t \t this.inherited(arguments); 
 
\t \t \t this._missingMsg = 'What ever message you want'; 
 
\t \t } 
 
    }); 
 
});