Sencha Touch Cookbook
上QQ阅读APP看书,第一时间看更新

Introduction

Most of the useful applications not only present the data, but also accept inputs from their users. When we think of having a way to accept inputs from the user, send them to the server for further processing, and allow the user to modify them, we think of forms and the form fields. If our application requires users to enter some information, then we go about using the HTML form fields, such as <input> , <select> , and so on, and wrap inside a <form> element. Sencha Touch uses these tags and provides convenient JavaScript classes to work with the form and its fields. It provides field classes such as Url , Toggle , Select , Text , and so on. Each of these classes provides properties to initialize the field, handle the events, and utility methods to manipulate the behavior and the values of the field. On the other side, the form takes care of the rendering of the fields and also handles the data submission.

Each field can be created by using the JSON notation (JavaScript Object Notationhttp://www.json.org) or by creating an instance of the class. For example, a text field can either be constructed by using the following JSON notation:

{
  xtype: 'textfield',
  name: 'text',
  label: 'My Text'
}

Alternatively, we can use the following class constructor:

var txtField = new Ext.form.Text({
  name: 'text',
  label: 'My Text'
});

The first approach relies on xtype, which is a type assigned to each of the Sencha Touch components. It is used as shorthand for the class. The basic difference between the two is that the xtype approach is more for the lazy initialization and rendering. The object is created only when it is required. In any application, we would use a combination of these two approaches.

In this chapter, we will go through all the form fields and understand how to make use of them and learn about their specific behaviors. In addition, we will see how to create a form using one or more form fields and handle the form validation and submission.