Отправка формы с помощью Sencha Touch - PullRequest
2 голосов
/ 29 ноября 2010

Я хочу создать простую форму с помощью Sencha Touch и прикрепить к ней обработчик отправки. Либо я n00b, либо это на удивление сложно сделать. Вот что я хочу:

  • Прикрепите обработчик onSubmit к форме, а не обработчик onClick к кнопке отправки
  • Отмена отправки формы при отправке формы.

Проблема в том, что обычные сенсорные кнопки Sencha вовсе не являются кнопками - это просто набор элементов div и span. Следовательно, нажатие кнопки «Отправить» не запускает исходную форму отправки. В результате к «кнопке» необходимо будет добавить обработчик, чтобы запустить отправку в форме, а затем захватить отправку формы, чтобы выполнить то, что я хочу. Это выполнимо, но не звучит элегантно. Есть ли лучший способ сделать это?

Вторая проблема связана с отменой событий. Как я могу получить дескриптор объекта события submit, чтобы я мог вызвать на нем предотвратителя? Есть ли другой способ сделать это в мире Sencha Touch?

Ответы [ 2 ]

1 голос
/ 04 марта 2011

У вас есть опция «submitOnAction: true», которая позволяет отправлять сообщения, когда пользователь нажимает кнопку «ОК / Перейти» на виртуальной клавиатуре на мобильном устройстве (отлично работает для iPhone / iPad).

app.views.newItemForm = Ext.extend(Ext.form.FormPanel, {
 submitOnAction: true,
 activeItem: 1, 
...
1 голос
/ 15 января 2011

Если вы хотите выполнить действие отправки стенда в форме, вам нужно установить для свойства конфигурации "standardSubmit" значение true, что приведет к стандартной отправке при публикации формы.

И да, вы должны прикрепить обработчик событий к кнопке, но это очень просто. Все, что вам нужно сделать, это настроить кнопку так:

{ xtype: 'button', текст: «Далее», обработчик: this.tapHandler // <= общий tapHandler для страницы } </p>

Затем настройте обработчик так:

// Toolbar button handler function
tapHandler: function (button, event) {
        switch (button.text) 
        {
           case "Submit":
               myForm.submit({...config object see API...})
               // to cancel event simply return false
               return false;
               break;

        }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...