Front End

5 abr, 2011

Criando formulários com jQuery Mobile

Publicidade

A entrada de dados é um item importante em qualquer tipo de tecnologia. No jQm, não poderia ser diferente! Além dos controles normais de um formulário HTML, foram criados novos controles já como o flip e o slider, que veremos logo a seguir.

Como no html, o formulário é marcado pela tag form, seguido pelos conhecidos parâmetros action e  method. Já entre as tags do formulário, temos uma estrutura semelhante a esta:

<div data-role="fieldcontain">
    <label for="name">The Field Label:</label>
    <input type="text" name="name" id="name" value=""  />
</div>

Ou seja, para cada campo é aconselhável usar o elemento div com o atributo data-role=”fieldcontain”. Nos exemplos a seguir, temos todos os componentes que podem ser usados no formulário, veja:

TextInput

<div data-role="fieldcontain">
    <label for="name">The Field Label:</label>
    <input type="text" name="name" id="name" value=""  />
</div>

E-mail, numérico, url, telefone e password

Pode-se utilizar um textinput especial para campos do tipo e-mail, alterando o seu type=”text” para type=”email”. O mesmo vale para “number”, “url”, “tel” e “password”.

TextArea

<div data-role="fieldcontain">
<label for="textarea">Textarea:</label>
<textarea cols="40" rows="8" name="textarea" id="textarea"></textarea>
</div>

Flip

<div data-role="fieldcontain">
<label for="slider2">Flip switch:</label>
<select name="slider2" id="slider2" data-role="slider">
<option value="off">Off</option>
<option value="on">On</option>
</select>
</div>

O flip é caracterizado pelo data-role=”slider”.

Slider

<div data-role="fieldcontain">
<label for="slider">Slider:</label>
<input type="range" name="slider" id="slider" value="0" min="0" max="100"  />
</div>

O Slider é caracterizado pelo type=”range” e você precisa fornecer os atributos min e max.

Control Group com check box

O controlgroup é um componente para agrupar os campos CheckBox e RadioBox. Pode-se agrupá-los na vertical ou na horizontal, conforme os exemplos a seguir.

<div data-role="fieldcontain">
<fieldset data-role="controlgroup">
<legend>Choose as many snacks as you'd like:</legend>
<input type="checkbox" name="checkbox-1a" id="checkbox-1a" class="custom" />
<label for="checkbox-1a">Cheetos</label>
<input type="checkbox" name="checkbox-2a" id="checkbox-2a" class="custom" />
<label for="checkbox-2a">Doritos</label>
<input type="checkbox" name="checkbox-3a" id="checkbox-3a" class="custom" />
<label for="checkbox-3a">Fritos</label>
<input type="checkbox" name="checkbox-4a" id="checkbox-4a" class="custom" />
<label for="checkbox-4a">Sun Chips</label>
</fieldset>
</div>

Control Group com checkbox  Horizontal

<div data-role="fieldcontain">
<fieldset data-role="controlgroup" data-type="horizontal">
<legend>Font styling:</legend>
<input type="checkbox" name="checkbox-6" id="checkbox-6" class="custom" />
<label for="checkbox-6">b</label>
<input type="checkbox" name="checkbox-7" id="checkbox-7" class="custom" />
<label for="checkbox-7"><em>i</em></label>
<input type="checkbox" name="checkbox-8" id="checkbox-8" class="custom" />
<label for="checkbox-8">u</label>
</fieldset>
</div>

Control Group com Radio Box

<div data-role="fieldcontain">
<fieldset data-role="controlgroup">
<legend>Choose a pet:</legend>
<input type="radio" name="radio-choice-1" id="radio-choice-1" value="choice-1" checked="checked" />
<label for="radio-choice-1">Cat</label>
<input type="radio" name="radio-choice-1" id="radio-choice-2" value="choice-2"  />
<label for="radio-choice-2">Dog</label>
<input type="radio" name="radio-choice-1" id="radio-choice-3" value="choice-3"  />
<label for="radio-choice-3">Hampster</label>
<input type="radio" name="radio-choice-1" id="radio-choice-4" value="choice-4"  />
<label for="radio-choice-4">Lizard</label>
</fieldset>
</div>

Control Group com Radio Box na horizontal

<div data-role="fieldcontain">
<fieldset data-role="controlgroup" data-type="horizontal">
<legend>Layout view:</legend>
<input type="radio" name="radio-choice-b" id="radio-choice-c" value="on" checked="checked" />
<label for="radio-choice-c">List</label>
<input type="radio" name="radio-choice-b" id="radio-choice-d" value="off" />
<label for="radio-choice-d">Grid</label>
<input type="radio" name="radio-choice-b" id="radio-choice-e" value="other" />
<label for="radio-choice-e">Gallery</label>
</fieldset>
</div>

Select

<div data-role="fieldcontain">
<label for="select-choice-1" class="select">Choose shipping method:</label>
<select name="select-choice-1" id="select-choice-1">
<option value="standard">Standard: 7 day</option>
<option value="rush">Rush: 3 days</option>
<option value="express">Express: next day</option>
<option value="overnight">Overnight</option>
</select>
</div>

Submit

O botão submit envia o formulário com os dados, para que
possa ser tratado. O código é idênctico ao botão submit de um form normal.