|
| Find sum af værdier i et dynamisk antal Fra : Brian Bendtsen |
Dato : 21-12-08 19:00 |
|
Hej
Jeg vil gerne finde summen af værdier indtastet i et dynamisk antal
input felter.
fx
<input type="input" id="felt1" class="felt"/>
<input type="input" id="felt2" class="felt"/>
....
....
<input type="input" id="felt30" class="felt"/>
Nogen gode ideer?
/BB
| |
Philip Nunnegaard (21-12-2008)
| Kommentar Fra : Philip Nunnegaard |
Dato : 21-12-08 21:06 |
|
"Brian Bendtsen" <bb@bellevuevej.dk> skrev
> Jeg vil gerne finde summen af værdier indtastet i et dynamisk antal input
> felter.
>
> fx
>
> <input type="input" id="felt1" class="felt"/>
> <input type="input" id="felt2" class="felt"/>
> ...
> ...
> <input type="input" id="felt30" class="felt"/>
Jeg går ud fra at du vil have udregningen foretaget, så snart du forlader et
felt.
I så fald ville jeg indsætte en onchange i hvert input-felt:
<input type="input" id="felt1" class="felt" onchange="beregnsum()"/>
Sum-feltet:
<span id="sumfelt">0</span> (eller input i stedet for span, hvis det _skal_
være et input-felt).
Javascriptet ville blive noget i denne dur (ikke afprøvet):
function beregnsum() {
document.getElementById('sumfelt').value =
document.getElementById('felt1').value +
document.getElementById('felt2').value + ... osv.
}
Dynamisk...
Så roder jeg mig lige ud noget mere pseudokode:
function beregnsum() {
for(i=1; i <= antalfelter; i++) {
document.getElementById('sumfelt').value +=
document.getElementById('felt'+i).value;
}
}
| |
Brian Bendtsen (22-12-2008)
| Kommentar Fra : Brian Bendtsen |
Dato : 22-12-08 00:08 |
|
Philip Nunnegaard skrev:
> "Brian Bendtsen" <bb@bellevuevej.dk> skrev
>
>> Jeg vil gerne finde summen af værdier indtastet i et dynamisk antal
>> input felter.
>>
>> fx
>>
>> <input type="input" id="felt1" class="felt"/>
>> <input type="input" id="felt2" class="felt"/>
>> ...
>> ...
>> <input type="input" id="felt30" class="felt"/>
>
> Jeg går ud fra at du vil have udregningen foretaget, så snart du
> forlader et felt.
> I så fald ville jeg indsætte en onchange i hvert input-felt:
>
> <input type="input" id="felt1" class="felt" onchange="beregnsum()"/>
>
> Sum-feltet:
> <span id="sumfelt">0</span> (eller input i stedet for span, hvis det
> _skal_ være et input-felt).
>
> Javascriptet ville blive noget i denne dur (ikke afprøvet):
>
> function beregnsum() {
> document.getElementById('sumfelt').value =
> document.getElementById('felt1').value +
> document.getElementById('felt2').value + ... osv.
> }
>
> Dynamisk...
> Så roder jeg mig lige ud noget mere pseudokode:
>
> function beregnsum() {
> for(i=1; i <= antalfelter; i++) {
> document.getElementById('sumfelt').value +=
> document.getElementById('felt'+i).value;
> }
> }
Hej
Det ser fornuftigt ud, men jeg mangler en metode til at finde ud af hvor
mange felter jeg har og der vil fx ikke altid være et felt "felt1" men
måske et felt4 og et felt7 og så vil jeg nok få en del javascriptfejl.
Det ser måske underligt ud, når man ikke kender baggrunden for det, så
her en lille forklaring.
Hvert felt genereres pga. af en vare der oprettes i et adminsystem og
hver vare har et unikt id. De første varer vil generere felterne felt1,
felt2 osv. Men så snart der slettes nogle varer og tilføjes nye kommer
det til at se anderledes ud, fx felt2, felt3 osv.
Kan man tælle antal af felter der har samme class tilknyttet?
Nogen ideer?
/BB
| |
Anders Wegge Keller (22-12-2008)
| Kommentar Fra : Anders Wegge Keller |
Dato : 22-12-08 00:34 |
|
Brian Bendtsen <bb@bellevuevej.dk> writes:
...
> Kan man tælle antal af felter der har samme class tilknyttet?
>
> Nogen ideer?
var re = new RegExp("(^| )" + <<klasse>> + "( |$)");
foo = getElementsByTagName("input");
for (i = 0; i < foo.length; i++) {
if (re.test(foo[i].className)) {
// Din kode her
}
}
Ganske utestet, så du skal nok forvente at det er en ide, snarere end
noget brugbar kode.
--
/Wegge
| |
Stig Johansen (22-12-2008)
| Kommentar Fra : Stig Johansen |
Dato : 22-12-08 07:07 |
|
Anders Wegge Keller wrote:
> Ganske utestet, så du skal nok forvente at det er en ide, snarere end
> noget brugbar kode.
En anden ide kunne være at kigge på XPath.
Det burde kunne give en pænere, hurtigere og mere læsbar kode.
Men det er kun en ide, da jeg ikke er sikker på understøttelse i diverse
browsere (qud over IE).
--
Med venlig hilsen
Stig Johansen
| |
|
|