2016-07-04 33 views
0

I dynamisch Textfelder erstellt haben, die von einem Objekt:Holen Sie sich alle Textfelder Wert aus Titan

var fields = [{field:'telephone', hint:'Telephone'},{field:email, hint:'Email} ... ]; 

und erstellen Sie die Felder:

_.each(fields, function(item){ 
    var field = Ti.UI.createTextField({ 
     id : item.field, 
     hintText : item.hint, 
    }); 
    $.form.add(field) 

}) 

ich eine Taste:

var button = Ti.UI.createButton({ 
    title : 'Send All' 
}); 
$.form.add(button) 

Jetzt möchte ich sto re all textVerfügt Werte in ein globales Objekt, wenn Sie auf klicken.

var output = []; 
$.button.addEventListener(function(){ 
    /* I want to loop to each created textFields above and get value from id */ 
    _.each(fields, function(item){ 
     output.push(item.value); 
    }); 
    Alloy.Globals.form = output; 
}); 

Aber das funktioniert nicht, ich kann nicht die Werte der erstellten Felder erhalten, wenn Sie auf die Schaltfläche klicken. Haben Sie eine Idee, wie Sie damit umgehen sollen?

Danke

Antwort

0

Sie können es von Kindern Eigenschaft

zB

$.button.addEventListener(function(){ 
    _.each($.form.children, function(item){ 
     if(item.apiName == "Ti.UI.TextField"){ 
     output.push(item.value); 
     } 
}); 
Alloy.Globals.form = output; 
}); 
+0

Hallo vielen Dank für Ihre Antwort, wie es scheint, einen guten Weg, ich habe nur eine Frage mit: Ereignisfelder sind dynamisch erstellt ich könnte Thema durch $ .form.children bekommen? Vielen Dank – user44321

+0

Ja, Sie werden es von Kindern Eigentum bekommen, spielt keine Rolle, es ist dynamisch oder statisch. –