hallo hallo,
ik ben bezig om een soort van controle functie te maken welke de waarde van een rijtje getallen controleert en eventueel veranderd.
het rijtje wordt aan de hand van dit html formulier opgeroepen:
zoals je ziet bestaat ieder formulier uit 4 textboxjes welke gecontroleerd moeten gaan worden.
Allereerst moeten het enkel gehele getallen zijn welke ingevuld mogen worden in de range van 1 tot en met 10.
tevens mag het afgeronde getal niet voorkomen in de andere vakjes.
Welke hier 4 andere zijn... maar...... ik wil de functie universeel houden, en dat is me nu nog niet gelukt, aangezien sommige formulieren/rijtjes uit 5 - 9 of 3 parameters bestaan......
de code die ik reeds heb is de volgende. Ik heb mbv comments een aantal opmerkingen geplaatst:
nu is mijn vraag als volgt... hoe kan ik deze functie optimaliseren en dan bedoel ik kan het makkelijker? want ik heb het idee dat het veel makkelijker kan...
en hoe kan ik nu ervoor zorgen dat de rijtjes variabel kunnen zijn en dat ik niet de functie moet aanroepen met drie variabelen....
ik ben bezig om een soort van controle functie te maken welke de waarde van een rijtje getallen controleert en eventueel veranderd.
het rijtje wordt aan de hand van dit html formulier opgeroepen:
code:
1
2
3
4
5
6
7
| <form name=profiel_woon-leef> <input type=text id=nummer name=verhouding_1 onchange="check_me(this.value,this.name,'verhouding')" value=""> <input type=text id=nummer name=verhouding_2 onchange="check_me(this.value,this.name,'verhouding')" value=""> <input type=text id=nummer name=verhouding_3 onchange="check_me(this.value,this.name,'verhouding')" value=""> <input type=text id=nummer name=verhouding_4 onchange="check_me(this.value,this.name,'verhouding')" value=""> <input type=text id=nummer name=verhouding_5 onchange="check_me(this.value,this.name,'verhouding')" value=""> </form> |
zoals je ziet bestaat ieder formulier uit 4 textboxjes welke gecontroleerd moeten gaan worden.
Allereerst moeten het enkel gehele getallen zijn welke ingevuld mogen worden in de range van 1 tot en met 10.
tevens mag het afgeronde getal niet voorkomen in de andere vakjes.
Welke hier 4 andere zijn... maar...... ik wil de functie universeel houden, en dat is me nu nog niet gelukt, aangezien sommige formulieren/rijtjes uit 5 - 9 of 3 parameters bestaan......
de code die ik reeds heb is de volgende. Ik heb mbv comments een aantal opmerkingen geplaatst:
offtopic:
Dit is geen php code, maar javascript
is er een tag waarbij er regel nummers komen welke geen php is?
Dit is geen php code, maar javascript
is er een tag waarbij er regel nummers komen welke geen php is?
PHP:
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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
| <script> function check_me(waarde,welke,factor){ var new_waarde if (waarde.match(/\d\d/)){ //twee getallen --> de waarde moet 10 worden new_waarde = '10'; }else{ //geen twee getallen---> kijken of het een 6.7 is of 6,7 getal if(waarde.match(/\d,\d/)){ //de waarde heeft een comma--> geen math.floor, gewoon het eerste getal pakken: new_waarde = waarde.match(/\d/) }else{ if(waarde.match(/\d/)){ //als het eerste karakter een digit is afronden new_waarde = Math.floor(waarde); }else{ //anders is het geen getal alert("geen getal"); new_waarde = 'x' } } } //alert(new_waarde) //debug if (new_waarde != 'x'){// als de nieuwe waarde geen 'x' is: mijn_num = welke.match(/\d/) //het verkrijgen van de nummer van de name van het textboxje verhouding_1 <-- de 1 //nu dan een array maken waarin dit getal niet in voorkomt //hier zit ook meteen het probleem met de andere grotes van //de rijtjes..... oplossing? if (mijn_num == '1'){ var nummers = new Array( '2','3','4','5') } if (mijn_num == '2'){ var nummers = new Array( '1','3','4','5') } if (mijn_num == '3'){ var nummers = new Array( '1','2','4','5') } if (mijn_num == '4'){ var nummers = new Array( '1','2','3','5') } if (mijn_num == '5'){ var nummers = new Array( '1','2','3','4') } //zet nu de waarde check op x --> geeen probleem check = 'x' //doorlopen van de array nummers om te checken of de //waarde daarvan gelijk is aan de nieuwe waarden //als dit zo is --->check =fout for (i=0; i<4; i++) { var factor_2 = factor+'_'+nummers[i]; andere_waarde = document.forms['profiel_woon-leef'].elements[factor_2].value if(new_waarde == andere_waarde){ check = 'fout' } } //als de waarde fout is, dus er is een overeenkomst gevonden //de waarde veranderen in '' if(check == 'fout'){ //de waarde veranderen in '' new_waarde = '' document.forms['profiel_woon-leef'].elements[welke].value = new_waarde //en de border rood maken document.forms['profiel_woon-leef'].elements[welke].style.border = "1px solid red"; }else{ // voor de rest is het goed om de nieuwe waarde eraan toe te kennen // en de border zwart te maken document.forms['profiel_woon-leef'].elements[welke].value = new_waarde document.forms['profiel_woon-leef'].elements[welke].style.border = "1px solid black" } } </script> |
nu is mijn vraag als volgt... hoe kan ik deze functie optimaliseren en dan bedoel ik kan het makkelijker? want ik heb het idee dat het veel makkelijker kan...
en hoe kan ik nu ervoor zorgen dat de rijtjes variabel kunnen zijn en dat ik niet de functie moet aanroepen met drie variabelen....
[ Voor 27% gewijzigd door hobbeldebobbel op 30-01-2004 14:19 ]
hier zou een slimme opmerking kunnen staan
maar die staat er niet