Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 08.10.2011, 22:48
Аспирант
Отправить личное сообщение для Ichigeki Посмотреть профиль Найти все сообщения от Ichigeki
 
Регистрация: 24.10.2008
Сообщений: 48

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

if (this.up('form').getForm().isValid()) {
    ....
}


Как я понял, для textarea, наприимер, isValid() возвращает true либо false когда поле пустое\непустое, если allowBlank= false.
А вот если мне , к примеру, надо сделать, чтобы валидация не проходила, когда длина введенной строки меньше 10 символов, или регексп какой-нибудт хитрый применить.. Как в этом случае быть?

Последний раз редактировалось Ichigeki, 08.10.2011 в 23:14.
Ответить с цитированием
  #2 (permalink)  
Старый 08.10.2011, 23:26
Аватар для DreamTheater
Профессор
Отправить личное сообщение для DreamTheater Посмотреть профиль Найти все сообщения от DreamTheater
 
Регистрация: 15.02.2011
Сообщений: 471

http://docs.sencha.com/ext-js/4-0/#!...-cfg-minLength
Ответить с цитированием
  #3 (permalink)  
Старый 09.10.2011, 19:29
Аспирант
Отправить личное сообщение для Ichigeki Посмотреть профиль Найти все сообщения от Ichigeki
 
Регистрация: 24.10.2008
Сообщений: 48

спасибо
Ответить с цитированием
  #4 (permalink)  
Старый 15.10.2011, 03:13
Аспирант
Отправить личное сообщение для Ichigeki Посмотреть профиль Найти все сообщения от Ichigeki
 
Регистрация: 24.10.2008
Сообщений: 48

Опять возникла проблема с валидацией...
{
        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() не работает
Ответить с цитированием
  #5 (permalink)  
Старый 15.10.2011, 11:36
Аспирант
Отправить личное сообщение для Ichigeki Посмотреть профиль Найти все сообщения от Ichigeki
 
Регистрация: 24.10.2008
Сообщений: 48

частично ошибку нашел: вместо allowBlanks надо было писать allowBlank

Но не получается сделать фалидацию с помощью регэкспа, если вместо allowBlank: false использовать:

regex: RegExp("^[A-Za-z]{3,20}$"),
  regexText: 'regexText'


Проблема такая же: поле подсвечивается красным только во время ввода текста(если он не удовлетворяте условиям рекэкспа), а при нажатии вызове isValid() - не подсвечивается
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
не работает скрипт как ссылка Abraham jQuery 31 14.06.2011 03:04
подскажите как работает setTimeout ruslan368560 Общие вопросы Javascript 1 17.05.2011 18:48
InnerHTML почему-то работает не так, как хотелось бы. помогите Dima00782 Общие вопросы Javascript 2 13.06.2010 21:17
Как работает обработчик onMouseMove() bayah Общие вопросы Javascript 3 29.04.2010 14:36
Как правильно послать XML в POST запросе LowCoder AJAX и COMET 10 15.07.2009 23:20