Flex-Brasil Pergunta

[Flex-Brasil]Loop através de itens do Form para limpar, validar,salvar

Essa é uma pergunta da comunidade Flex-Brasil:

Fagner M. Vila escreveu:
>
> digamos q possuo um formulário com uns 50 campos tipo InputText
> e tenho um botao Limpar ao final caso deseje limpar todos os campos
> como fazer isso sem ter que setar campo a campo como vazio?!
> existe uma forma mais simples?
>
> obrigado abraço.
>
>

Resposta:

1 código fala mais que mil palavras.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
	<mx :Script>
		< ![CDATA[
			import mx.controls.TextInput;
 
				public function limparInputs():void{
			    var values : Object = new Object();
			    var itensdoForlumario:Array = FormularioBox.getChildren();
 
			    for (var i:int = 0; i < itensdoForlumario.length; i++)
			    {
			        var formItem:Array = itensdoForlumario[i].getChildren();
			      	if(formItem[0] is TextInput){
			      		 formItem[0].text = '';
			      		 formItem[0].htmlText ='';
			      	}
			    }
			}
		]]>
	</mx>
	<mx :Form defaultButton="{meuBtn}" x="55" y="34" id="FormularioBox">
		</mx><mx :FormItem label="Label">
			<mx :TextInput/>
		</mx>
		<mx :FormItem label="Label">
			<mx :TextInput/>
		</mx>
		<mx :FormItem label="Label">
			<mx :TextInput/>
		</mx>
		<mx :FormItem label="Label">
			<mx :TextInput/>
		</mx>
		<mx :FormItem label="Label">
			<mx :TextInput/>
		</mx>
		<mx :FormItem label="Label">
			<mx :TextInput/>
		</mx>
		<mx :FormItem label="Label">
			<mx :TextArea text="teste"/>
		</mx>
 
	<mx :Button id="meuBtn" x="231" y="286" label="Limpar" click="limparInputs()"/>
<!-- -->
[Update] Alguns códigos exibidos neste post podem não aparecer corretamente, devido a um problema antigo em um plug-in para exibir código fonte. Pedimos desculpas.

5 thoughts on “[Flex-Brasil]Loop através de itens do Form para limpar, validar,salvar

  1. BOa Noite Camarada

    Sobre esse exemplo eu tentei usar as condições de tipo de campo usando switch mas não é avaliado o tipo de campo do jeito que usei pode dar uma ajuda

    /* limparItemForm */
    public function limparItemForm(NameForm:Object):void{
    var itensdoForlumario:Array = NameForm.getChildren();
    for (var i:int = 0; i <itensdoForlumario.length; i++){

    var formItem:Object = itensdoForlumario[i].getChildren();

    trace(“formItem[0]: ” + formItem[0]);

    switch(formItem[0]){

    case “TextInput” || “TextArea”: {
    formItem[0].text = “”;
    formItem[0].htmlText = “”;
    break;
    }

    case “DateField”: {
    formItem[0].selectedDate = null;
    break;
    }

    case “ComboBox”: {
    formItem[0].selectedIndex = 0;
    break;
    }

    case “NumericStepper”: {
    break;
    }

    case “RadioButton” || “CheckBox”: {
    break;
    }

    }
    }
    }
    /* limparItemForm */

    Outro exemplo que usei como base

    http://fiote.wordpress.com/2008/02/27/formulario-personalizado/

  2. Igor, tenho algumas dúvidas:
    1) Por que a variável “formItem” é uma array?
    2) Não é mais legível fazer “for each” ao invés de “for length”?

    Penso que você como “evangelista flex” deveria postar exemplos mais interessantes, pelo visto o livro “Beautiful code” não surtiu efeito!

  3. @Eduardo

    Implementações são vistas de N formas. Você tem as suas e eu possuo as minhas. O for each pode ser aplicado e eliminar o for simples.
    De onde você tirou que sou evangelista? Só afirme uma cois se você tive certeza que foi dito pela pessoa ou você viu a pessoa dizer. Afirmações deste tipo são vagas e sem credibilidade.

Comments are closed.