/ Forside / Teknologi / Udvikling / Java Scripts / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Java Scripts
#NavnPoint
molokyle 5410
Klaudi 2799
smorch 2439
kim 1360
Harlekin 1134
bentjuul 984
gibson 800
severino 695
Random 675
10  konsulent.. 626
Samme Javascript til flere forms....
Fra : Justin Lee


Dato : 29-10-02 13:59

Har forsøgt at kalde samme funktion - testForIndhold - med
forskellige efterfølgende Forms, men har oplevet nogle problemer
mht. den ønskede handling.

**************************************************
Funktionen:

<script type="text/javascript">
   function testForIndhold()
    {
    error = 0;
    if((document.forms[0].feltNavn.value=='') && (error==0))
{
alert("Tekstfeltet SKAL udfyldes!");
document.forms[0].feltNavn.focus();
error == 1;
}
}
</script>
**************************************************
Kald til funktionen:

<input type="text" name="fname" onBlur="testForIndhold(); return
false;" size="25" maxlength="25" value="">

og

<input type="text" name="lname" onBlur="testForIndhold(); return
false;" size="25" maxlength="25" value="">
**************************************************
Har prøvet at sende forskellige parametre med, såsom (this.value)
og (this.value, feltNavn) - hvor feltnavn er (name="") for den
pågældende form....

Har dog oplevet at den enten går i "selvsving" dvs. fortsætter
med at prompte med alertbeskeden i en evig cirkel....
eller focus bliver sendt til næste form i stedet for at gå
tilbage til samme form, der kaldte funktionen.

Har på nuværende tidspunkt strirret mig blind på problemet, så
måske kan jeg bare ikke se skoven for bare træer.

Ønsker ikke at skulle lave en masse "if'er" for hver form.

Så hvis nogen har siddet med et tilsvarende problem vil det glæde
mig, såfremt vedkommende er kommet frem til en acceptabel løsning


--
Vil du lære at kode HTML, XHTML, CSS, SSI eller ASP ???
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

 
 
Jacob Winther (30-10-2002)
Kommentar
Fra : Jacob Winther


Dato : 30-10-02 10:04

"Justin Lee" <Justin@pc.dk> skrev i en meddelelse
news:apm0mf$7gc$1@sunsite.dk...
> Har forsøgt at kalde samme funktion - testForIndhold - med
> forskellige efterfølgende Forms, men har oplevet nogle problemer
> mht. den ønskede handling.
>
> **************************************************
> Funktionen:
>
> <script type="text/javascript">
> function testForIndhold()
> {
> error = 0;
> if((document.forms[0].feltNavn.value=='') && (error==0))
> {
> alert("Tekstfeltet SKAL udfyldes!");
> document.forms[0].feltNavn.focus();
> error == 1;
> }
> }
> </script>
> **************************************************
> Kald til funktionen:
>
> <input type="text" name="fname" onBlur="testForIndhold(); return
> false;" size="25" maxlength="25" value="">
>
> og
>
> <input type="text" name="lname" onBlur="testForIndhold(); return
> false;" size="25" maxlength="25" value="">
> **************************************************
> Har prøvet at sende forskellige parametre med, såsom (this.value)
> og (this.value, feltNavn) - hvor feltnavn er (name="") for den
> pågældende form....
>
> Har dog oplevet at den enten går i "selvsving" dvs. fortsætter
> med at prompte med alertbeskeden i en evig cirkel....
> eller focus bliver sendt til næste form i stedet for at gå
> tilbage til samme form, der kaldte funktionen.
>
> Har på nuværende tidspunkt strirret mig blind på problemet, så
> måske kan jeg bare ikke se skoven for bare træer.
>
> Ønsker ikke at skulle lave en masse "if'er" for hver form.
>
> Så hvis nogen har siddet med et tilsvarende problem vil det glæde
> mig, såfremt vedkommende er kommet frem til en acceptabel løsning
>
>
> --
> Vil du lære at kode HTML, XHTML, CSS, SSI eller ASP ???
> - Pædagogiske tutorials på dansk
> - Kom godt i gang med koderne
> KLIK HER! => http://www.html.dk/tutorials

Hej Justin.

Hvis jeg læser din kode korrekt så ønsker du at teste indholdet i et eller
andet tekst input felt. Hvis feltet er tomt skal fokus sættes tilbage til
det inputfelt som brugeren glemte at udfylde.

For det først skal du huske at give den værdi du ønsker at teste med som
argument til funktionen. Da du både skal teste for value attributten og
kalde focus() funktionen skal du benytte 'this' referencen.

Hvis du virkelig mener at brugeren ikke må sætte fokus på noget som helst
andet før der er blevet indtastet noget indhold i form elementet så skal
der gemmes lidt mere information end blot en error værdi og vi skal vide
hvilket element der er starter onBlur eventen.

Jeg har lavet et eksempel der viser hvorledes det kunne gøres. Har ikke helt
gennemtestet det men mener at det skulle virke

<script type="text/javascript">
var currentErrorObject = null; // Reference til det objekt der mangler at
blive udfyldt

function testForIndhold( anInputElement, triggerEvent ) {
if( (anInputElement.value == '' ) && ( ( triggerEvent.srcElement ==
currentErrorObject ) || currentErrorObject == null ) ) {
alert("Tekstfeltet SKAL udfyldes!");
currentErrorObject = anInputElement;
anInputElement.focus();
}
else { // Hvis der er blevet indtastet en værdi nulstilles
currentErrorObject
currentErrorObject = null;
}
}
</script>

<form name="tester">
<input type="text" name="fname" onBlur="testForIndhold( this, event );"
size="25" maxlength="25" value="">

<input type="text" name="lname" onBlur="testForIndhold( this, event );"
size="25" maxlength="25" value="">
</form>

Venlig Hilsen

Jacob Winther
IT-C



---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.408 / Virus Database: 230 - Release Date: 24-10-2002



Søg
Reklame
Statistik
Spørgsmål : 177560
Tips : 31968
Nyheder : 719565
Indlæg : 6408941
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste