Volledige versie bekijken : Vervelend gedrag html form



carl
8 May 2009, 13:25
Hey,

Op een website die ik aan het maken ben zou ik graag een aantal zaken voor het forumulier willen doen. Het betreft het controleren of er wel invoer is.

javascript:
function controleleeg(veld){

if(veld.value.length <=0 ||veld.value.length=="Invoer verplicht !"){
veld.focus();
}
if (veld.value.length <=0){
veld.value="Invoer verplicht !";
}
}

(en vele variaties geprobeerd :()

Dus wat moet er gebeuren ? als er geen invoer is of er staat invoer verplicht moet het veld invoer verplicht bevatten, focus krijgen en moet alles geselecteerd worden. Ik heb al vanalles geprobeerd maar het blijft tegenwerken. Het beschrijven gebeurt wel, de focus en select NIET (ondanks onblur="controleleeg(this.form.Naam)" onfocus="select()" onclick="select()" onmousedown="select()" voor het veld :()
Tevens wordt de onblur tweemaal uitgevoerd denk ik want een alert(msg) komt 2 keer voor. Ik geraak er niet aan uit en hoop dat iemand me kan helpen ...
PS: als er iemand een leuke methode weet om een afbeelding geleidelijk van links naar rechts en omgekeerd te laten bewegen onafhankelijk van de schermbreedte zou dat ook handig zijn.

ultddave
8 May 2009, 15:55
Ik gebruik javascript zelf niet zoveel, maar hier staat wel wat;
http://www.tizag.com/javascriptT/javascriptform.php

Volgens mij kan je het ook via een html form en dan via php checken.

Mvg,
Dave

Keystroke
8 May 2009, 16:15
veld.value.length=="Invoer verplicht !"
Je kan geen integer met een string vergelijken

Dus:
veld.value == "Invoer verplicht !"

ultddave
8 May 2009, 16:33
Je kan geen integer met een string vergelijken

Dus:
veld.value == "Invoer verplicht !"

Klopt. Had ik over gekeken.
JavaScript past wel type conversies toe, dus hij gaat geen errors geven. :)

Voorbeeld:
"3" is een string
3 is een integer

"3" == 3 returned true

"3" === 3 returned false

2 '=' tekens passen type conversie toe. (indien nodig uiteraard)
3 '=' tekens passen dat niet toe, en evalueren heel strict. ;)

Mvg,
Dave

EDIT: Een foto bewegen? Ik heb wel een script waar de gebruiker een waarde moet ingeven, en de foto komt dan op die "plaatst" op scherm te staan. Dynamische pagina dus.

function (moveIt(movee, newTop, newLeft) {
dom = document.getElementById(movee).style;

dom.top = newTop + "px";
dom.left = newLeft + "px";

}

En de xhtml code;



<body>
<form action= " ">
<p>
<label>
x coordinate:
<input type="text" id="leftCoord" size="3" />
</label>
<br />
<label>
y coordinate:
<input type="text" id="topCoord" size ="3" />
</label>
<br />
<input type="button" value="Move It" onclick="moveIt('nebula',document.getElementById('topCoord' ).value, document.getElementById('leftCoord').value)" />
</p>
</form>
<div id = "nebula" style="position: absolute; top: 115px; left:0;">
<img src="foto.png" alt="dit is een foto :o" />
</div>
</body>

Int voorbeeld was het een foto van 'nebula' clouds, vandaar die nebula ;).

Wat rot is, is dat als je de foto links boven laat plaatsen, je de knoppen niet meer ziet. Maar dat kan je nog aanpassen etc ;)

Khoop dat het ietwat helpt ;P Je kan hiermee iets maken dat automatisch (dmv een loop structure) de waardes aanpast ofzoiets :P

carl
8 May 2009, 17:13
Bedankt, khad over die domme fout heen gekeken :( ik vermoed dat door die error het sccript zelfs niet zal gewerkt hebben ...

Keystroke
8 May 2009, 17:44
Bedankt, khad over die domme fout heen gekeken :( ik vermoed dat door die error het sccript zelfs niet zal gewerkt hebben ...

Inderdaad, 1 fout en je hele script is naar de maan. Dat is het vervelendste aan javascript vind ik, je krijgt nooit foutmeldingen, het werkt gewoon niet. :wall:

djeetn
8 May 2009, 18:18
mss nog kleine opmerking, maar 't zal zo ook wel werken hoor:

veld.value.length <= 0 ???

'n beetje vreemd, nog nooit geweten dat de lengte negatief kan zijn ;)