Как работает валидация форм?
Пытаюсь ратзобраться, как проверить, валидные ли данные ввел пользователь перед отправкой на сервер. Везде нахожу что-то вроде этого:
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, время: 08:43. |