Как работает валидация форм?
Пытаюсь ратзобраться, как проверить, валидные ли данные ввел пользователь перед отправкой на сервер. Везде нахожу что-то вроде этого:
if (this.up('form').getForm().isValid()) {
....
}
Как я понял, для textarea, наприимер, isValid() возвращает true либо false когда поле пустое\непустое, если allowBlank= false. А вот если мне , к примеру, надо сделать, чтобы валидация не проходила, когда длина введенной строки меньше 10 символов, или регексп какой-нибудт хитрый применить.. Как в этом случае быть? |
|
спасибо
|
Опять возникла проблема с валидацией...
{
xtype: 'form',
id: 'myform',
url: 'update',
bodyStyle:'padding:5px 5px 0',
items: [{
id : 'parentLinkText',
fieldLabel: 'Text',
xtype: 'textfield',
name : 'linknamef',
width: 300,
allowBlanks: false,
minLength: 3,
mxnLength: 20
},{
width: 300,
xtype: 'textfield',
name : 'avatarfilef',
fieldLabel: 'Header Image',
inputType: 'file'
},{
id: 'parentLinkId',
xtype: 'hiddenfield',
name: 'idhiddenf',
value: 0
}]
}
.....
var form = parentLinksPanel.down('form');
if( form.getForm().isValid() ){
}
form.getForm().isValid() всегда возвращает true. Почему так??? Само поле подсвечивается красным только когда в нем что-то печатаешь пока меньше трех символов. А вот isValid() не работает :( |
частично ошибку нашел: вместо allowBlanks надо было писать allowBlank
Но не получается сделать фалидацию с помощью регэкспа, если вместо allowBlank: false использовать:
regex: RegExp("^[A-Za-z]{3,20}$"),
regexText: 'regexText'
Проблема такая же: поле подсвечивается красным только во время ввода текста(если он не удовлетворяте условиям рекэкспа), а при нажатии вызове isValid() - не подсвечивается :( |
| Часовой пояс GMT +3, время: 01:23. |