Dynamisch variabel vullen in class

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Ama saril

ama saril

27/07/2016 14:56:18
Quote Anchor link
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:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
<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!.
 
PHP hulp

PHP hulp

22/12/2024 07:29:54
 
Thomas van den Heuvel

Thomas van den Heuvel

27/07/2016 15:25:46
Quote Anchor link
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.
 
Ama saril

ama saril

27/07/2016 16:26:44
Quote Anchor link
Stel dat ik de volgende velden heb:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<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:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
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
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
$( ".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?)
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.