Ik heb een formulier met allerlei invoervelden en ook een class die de waarde van deze invoervelden vasthoud en daar dingen mee gaat doen. Nu wil ik niet voor elk veldje een aparte procedure maken om de variabel te setten in de class (lijkt me een beetje omslachtig). Ik had gedacht dat als je met jquery het id en de waarde van het veld kan ophalen je met dat id ook de variabel kan setten met de juiste waarde. Hieronder een voorbeeld:


<input type="text" class="vulvariabel" id="abc">
//hieronder het javascript waar ik het mee wil doen
function TestClass()
{
    this.abc;
}
var t = new TestClass();

$( ".vulvariabel" ).change(function() {
    var variabelid = $(this).attr('id');
    var waarde = $(this).val();		
    window[t.variabelid] = waarde;  //hier gaat het fout. met een normale variabel krijg ik dit gedaan maar om een variabel in de class te setten werkt dit niet.		
});


Ik heb al gevonden dat je met window[variabel] een variabel kan setten. Ik krijg het alleen niet gedaan als ik een variabel in de class wil setten (wel als ze buiten de class staan). Heb al een tijd zitten googlen maar kan hier geen oplossing voor vinden. Weet iemand hoe ik dit kan doen? Ik kom hier niet uit en kan geen goede bronnen of voorbeelden vinden.

Bedankt!.
Wil je waarde of waarden bijhouden. In het laatste geval zul je toch meerdere objecten moeten aanmaken van TestClass? Ik zie (nog) niet helemaal waar je met deze constructie naartoe wilt.
Stel dat ik de volgende velden heb:

<input type="text" id="veld1" class="vulvariabel">
<input type="text" id="veld2" class="vulvariabel">
<input type="text" id="veld3" class="vulvariabel">
<input type="text" id="veld4" class="vulvariabel">
<input type="text" id="veld5" class="vulvariabel">

Dit zou dan (ter illustratie) tot veld100 kunnen lopen.
Ik wil niet per veld het onderstaande definieren:

function TestClass{
this.veld1;
this.veld2;
this.veld3;
this.veld4;
this.veld5;
}
$( "#veld1" ).change(function() {
    t.veld1 = $(this).val();       
}); 
$( "#veld2" ).change(function() {
    t.veld2 = $(this).val();       
}); 
$( "#veld3" ).change(function() {
    t.veld3 = $(this).val();       
}); 
$( "#veld4" ).change(function() {
    t.veld4 = $(this).val();       
}); 
$( "#veld5" ).change(function() {
    t.veld5 = $(this).val();       
}); 


Dit lijkt me zo inefficiƫnt om dan voor elk invoerveld wat ik heb een '.change' te bouwen.
Daarom wilde ik dat graag simpeler maken door het onderstaande

$( ".vulvariabel" ).change(function() {
    var variabelid = $(this).attr('id');            //het id ophalen van het veld (het id is hetzelfde als de class parameter;
    var waarde = $(this).val();        //De waarde ophalen die moet worden geset.
    window[t.variabelid] = waarde;  //De waarde setten in de class.       
}); 

Ik wil dus in 1 class meerdere variabelen vasthouden maar wil het liefst maar 1 functie die deze variabelen daar werkelijk in plaatst (simpelweg omdat dat [volgens mij] netter is).

(Hoop dat het zo iets duidelijker is?)


Reageren