У меня есть раскрывающийся список. Когда я выбираю параметр «Дата» из раскрывающегося списка, пользовательский ввод текстового поля должен быть только в формате мм/дд/гггг. Если что-то еще, то бросьте предупреждение. Любые предложения по достижению этого в ext js.Подтвердить ввод текстового поля даты в extjs
0
A
ответ
1
Ext.create('Ext.form.field.Date', {
name : 'name',
fieldLabel: 'Date',
emptyText: 'mm/dd/yyyy',
altFormats: 'm/d/Y',
renderTo: Ext.getBody(),
submitFormat: 'm/d/Y',
format: 'm/d/Y',
listeners: {
blur: function(field) {
if(! field.isValid()) {
alert('Date is invalid!');
}
}
}
});
См: http://jsfiddle.net/qrbNT/
Но. Я думаю, это плохо. Лучше разрешить пользователю вводить дату в удобном формате, а сервер - в правильном формате. Используйте "altFormats" & "submitFormat" объектов представленных:
...
altFormats: 'U|d-m-Y|d.m.Y|d/m/Y|d,m,Y|d-m-y|d.m.y|d/m/y|m/d/Y',
submitFormat: 'm/d/Y',
...
1
Добавить валидатор в текстовое поле, как это:
validator: function(value){
if((Ext.Date.parse(value, "m/d/Y") && theComboBox.getValue() == "DATE_INPUT")
|| theComboBox.getValue() != "DATE_INPUT")
return true;
return "Date is not in the format mm/dd/yyyy";
}
Вам нужна ссылка на combobox
, что пользователь выбирает формат ввода, а также DATE_INPUT
, вероятно, не является вашим фактическим значением.
2
Siddharth,
Пожалуйста, взгляните на это. Вы можете оптимизировать этот код в соответствии с вашим фреймворком. Я просто привел пример вашего вопроса, как это:
var dateVar = {
xtype : 'datefield',
name : 'name',
fieldLabel: 'Date',
emptyText: 'mm/dd/yyyy',
altFormats: 'm/d/Y',
submitFormat: 'm/d/Y',
format: 'm/d/Y',
listeners: {
blur: function(field) {
if(! field.isValid()) {
alert('Date is invalid!');
}
}
}
};
Ext.create('Ext.form.Panel',{
id : 'editTask',
renderTo : Ext.getBody(),
items : [{
xtype : 'combo',
name : "type",
fieldLabel : 'Type',
store : ['DATE', 'NUMBER', 'TEXT'],
width : 500,
emptyText : "Select..",
listeners : {
change : selectionChanged
}
}, {
xtype: 'fieldcontainer',
id : 'datefiledContainer',
}]
});
function selectionChanged(combo){
var dateVarCont = Ext.getCmp("datefiledContainer");
dateVarCont.removeAll();
if(combo.value == "DATE"){
dateVarCont.add([dateVar]);
}else{
var field = {
xtype : combo.value.toLowerCase() + "field",
name : combo.value,
fieldLabel : combo.value,
width : 500
}
dateVarCont.add([field]);
}
};
Вы можете найти рабочий пример по следующей ссылке:
http://jsfiddle.net/narendrakurapati/gDJYw/5/
спасибо,
Nandu
Смежные вопросы
- 1. Подтвердить ввод текстового поля
- 2. Как подтвердить ввод даты в 3 поля?
- 3. Подтвердить ввод поля времени
- 4. Как подтвердить ввод даты?
- 5. Extjs 4: как сделать ввод текстового поля в редактируемый div?
- 6. Подтвердить ввод даты с Javascript
- 7. Подтвердить длину текстового поля
- 8. Подтвердить ввод текстового ввода html
- 9. Как подтвердить ввод текстового поля в списке радиокнопок?
- 10. Маска текстового поля ExtJS
- 11. Подтвердить ввод текстового поля для числового диапазона 1-100
- 12. Скрыть InputEl extjs поля даты
- 13. Редактирование текстового поля в extjs
- 14. Размещение текстового поля в extJS
- 15. Значок текстового поля Extjs внизу
- 16. Подтвердить ввод команды выбора даты и времени
- 17. Подтвердить дату, введенную из текстового поля с датой DatePange
- 18. Ввод изменяет формат текстового поля
- 19. ввод текста/заполнение текстового поля
- 20. php html ввод текстового поля
- 21. Как проверить ввод текстового поля?
- 22. Очистить ввод только текстового поля
- 23. Ввод QWidgets внутри текстового поля
- 24. Ввод текстового поля через кнопки?
- 25. Пользовательский ввод с текстового поля
- 26. Взять ввод с текстового поля
- 27. изменить границу цвета текстового поля в ExtJS
- 28. Изменение фонового текстового поля в ExtJS
- 29. Атрибут текстового поля Autosizing в ExtJS
- 30. Расширение текстового поля с кнопкой в ExtJs