Задача нередко встречается...
Если в форме указан параметр url и она отправляется через form.submit(), то уходит пустая строка, даже если определить для поля
emptyText и передать в
submit({submitEmptyText: false}). Ибо в коде написано:
getParams: function(useModelValues) {
var falseVal = false,
configParams = this.callParent(),
fieldParams = this.form.getValues(falseVal, falseVal, this.submitEmptyText !== falseVal, useModelValues,
true); // <-- смотри следующий кусок кода
return Ext.apply({}, fieldParams, configParams);
},
getValues: function(asString, dirtyOnly, includeEmptyText, useDataValues, isSubmitting) {
var values = {},
fields = this.getFields().items,
fLen = fields.length,
isArray = Ext.isArray,
field, data, val, bucket, name, f;
for (f = 0; f < fLen; f++) {
field = fields[f];
if (!dirtyOnly || field.isDirty()) {
data = field[useDataValues ? 'getModelData' : 'getSubmitData'](includeEmptyText, isSubmitting);
if (Ext.isObject(data)) {
for (name in data) {
if (data.hasOwnProperty(name)) {
val = data[name];
if (includeEmptyText && val === '') { // <-- здесь
val = field.emptyText || ''; // <-- здесь
}
if (!field.isRadio) {
if (values.hasOwnProperty(name)) {
bucket = values[name];
if (!isArray(bucket)) {
bucket = values[name] = [
bucket
];
}
if (isArray(val)) {
values[name] = bucket.concat(val);
} else {
bucket.push(val);
}
} else {
values[name] = val;
}
} else {
values[name] = values[name] || val;
}
}
}
}
}
}
if (asString) {
values = Ext.Object.toQueryString(values);
}
return values;
},