git.ithinksw.org
/
extjs.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Upgrade to ExtJS 3.3.1 - Released 11/30/2010
[extjs.git]
/
src
/
widgets
/
form
/
TextField.js
diff --git
a/src/widgets/form/TextField.js
b/src/widgets/form/TextField.js
index
bf7fdaf
..
2f99964
100644
(file)
--- a/
src/widgets/form/TextField.js
+++ b/
src/widgets/form/TextField.js
@@
-1,8
+1,8
@@
/*!
/*!
- * Ext JS Library 3.
1
.1
- * Copyright(c) 2006-2010
Ext JS, LLC
- * licensing@
extjs
.com
- * http://www.
extjs
.com/license
+ * Ext JS Library 3.
3
.1
+ * Copyright(c) 2006-2010
Sencha Inc.
+ * licensing@
sencha
.com
+ * http://www.
sencha
.com/license
*/
/**
* @class Ext.form.TextField
*/
/**
* @class Ext.form.TextField
@@
-322,14
+322,16
@@
var myField = new Ext.form.NumberField({
// private
preFocus : function(){
// private
preFocus : function(){
- var el = this.el;
+ var el = this.el,
+ isEmpty;
if(this.emptyText){
if(el.dom.value == this.emptyText){
this.setRawValue('');
if(this.emptyText){
if(el.dom.value == this.emptyText){
this.setRawValue('');
+ isEmpty = true;
}
el.removeClass(this.emptyClass);
}
}
el.removeClass(this.emptyClass);
}
- if(this.selectOnFocus){
+ if(this.selectOnFocus
|| isEmpty
){
el.dom.select();
}
},
el.dom.select();
}
},
@@
-368,8
+370,8
@@
var myField = new Ext.form.NumberField({
},
/**
},
/**
- * <p>Validates a value according to the field's validation rules and
marks the field as invalid
- *
if the validation fail
s. Validation rules are processed in the following order:</p>
+ * <p>Validates a value according to the field's validation rules and
returns an array of errors
+ *
for any failing validation
s. Validation rules are processed in the following order:</p>
* <div class="mdetail-params"><ul>
*
* <li><b>1. Field specific validator</b>
* <div class="mdetail-params"><ul>
*
* <li><b>1. Field specific validator</b>
@@
-432,46
+434,54
@@
var myField = new Ext.form.NumberField({
* <code>{@link #regexText}</code>.</p>
* </div></li>
*
* <code>{@link #regexText}</code>.</p>
* </div></li>
*
- * @param {Mixed} value The value to validate
- * @return {
Boolean} True if the value is valid, else false
+ * @param {Mixed} value The value to validate
. The processed raw value will be used if nothing is passed
+ * @return {
Array} Array of any validation errors
*/
*/
- validateValue : function(value){
- if(Ext.isFunction(this.validator)){
+ getErrors: function(value) {
+ var errors = Ext.form.TextField.superclass.getErrors.apply(this, arguments);
+
+ value = Ext.isDefined(value) ? value : this.processValue(this.getRawValue());
+
+ if (Ext.isFunction(this.validator)) {
var msg = this.validator(value);
var msg = this.validator(value);
- if(msg !== true){
- this.markInvalid(msg);
- return false;
+ if (msg !== true) {
+ errors.push(msg);
+ }
+ }
+
+ if (value.length < 1 || value === this.emptyText) {
+ if (this.allowBlank) {
+ //if value is blank and allowBlank is true, there cannot be any additional errors
+ return errors;
+ } else {
+ errors.push(this.blankText);
}
}
}
}
- if(value.length < 1 || value === this.emptyText){ // if it's blank
- if(this.allowBlank){
- this.clearInvalid();
- return true;
- }else{
- this.markInvalid(this.blankText);
- return false;
- }
+
+ if (!this.allowBlank && (value.length < 1 || value === this.emptyText)) { // if it's blank
+ errors.push(this.blankText);
+ }
+
+ if (value.length < this.minLength) {
+ errors.push(String.format(this.minLengthText, this.minLength));
}
}
- if(value.length < this.minLength){
- this.markInvalid(String.format(this.minLengthText, this.minLength));
-
return false
;
+
+ if (value.length > this.maxLength) {
+
errors.push(String.format(this.maxLengthText, this.maxLength))
;
}
}
- if(value.length > this.maxLength){
- this.markInvalid(String.format(this.maxLengthText, this.maxLength));
- return false;
- }
- if(this.vtype){
+
+ if (this.vtype) {
var vt = Ext.form.VTypes;
if(!vt[this.vtype](value, this)){
var vt = Ext.form.VTypes;
if(!vt[this.vtype](value, this)){
- this.markInvalid(this.vtypeText || vt[this.vtype +'Text']);
- return false;
+ errors.push(this.vtypeText || vt[this.vtype +'Text']);
}
}
}
}
- if(this.regex && !this.regex.test(value)){
- this.markInvalid(this.regexText);
-
return false
;
+
+ if (this.regex && !this.regex.test(value)) {
+
errors.push(this.regexText)
;
}
}
- return true;
+
+ return errors;
},
/**
},
/**