Hej,
jag ahr gjrot mitt första försök till validering. Jag har försökt inhämta kunskap från nätet (googlat), forumet samt en bok av Nick Heinle.
Suftet är att om inte vissa rutor är i fyllda, så skall rutor med uppmaning uppkomma - det händer inte nu...
Här kommer hela koden
<head>
<title>tidsbokning</title>
<script language="javascript">
function klar(form){
if (isFilled(form.age)== false {
alert(" Du måste fylla i din ålder!");
form.age.focus();
return false;
}
if (isFilled(form.cbs)== false {
alert("Upgge om du har bröstsmärtor!");
form.cbs.focus();
return false;
}
if (isFilled(form.andning)== false {
alert(" Du måste fylla om du har andningsbesvär!");
form.andning.focus();
return false;
}
if (isFilled(form.fraktur)== false {
alert(" Benbrott?");
form.fraktur.focus();
return false;
}
return true;
}
//->
</script>
</head><body>
<div align="center">
<h1><U>Underlag för tidsbokning</U></h1>
</div>
<P><P>
<form action="" method="post" name="boka" onSubmit= "return klar(this)" target="_self">
<h2 align="left"><U>Personuppgifter</U>:</h2>
<P>Efternamn:
<input name="enamn" type="text" size="30" />
Förnamn: <input name="fnamn" type="text" size="50" />
<br />
<br />
Ålder:
<input name="age" type="text" id="age" size="4" />
kön:
<input name="man" type="checkbox" id="man" value="checkbox" />
man
</label>
<label>
<input name="kvinna" type="checkbox" id="kvinna" value="checkbox">
kvinna</label>
<P>
<h2><U>Orsaken till att jag vill boka tid:</U></h2>
<P>Akuta
bröstsmärtor:
<input name="cbs" type="radio" value="radiobutton" />
Ja<br />
Akuta andningsbesvär
<input name="andning" type="radio" value="radiobutton" />
Ja
<br />
Benbrott: <input name="fraktur" type="radio" value="radiobutton" />
Ja
<P>
Besvären har hållit i sig:
<input name="radiobutton" type="radio" value="radiobutton" />
0 - 8 timmar
<input name="dag" type="radio" value="radiobutton" />
1 - 7 dagar
<input name="vecka" type="radio" value="radiobutton" />
> vecka
<P>
En kort beskrivning av besvären:<br />
<P>
<textarea name="anamnes" cols="90" rows="6" id="anamnes"></textarea>
<input name="skicka" type="submit" id="skicka" value="Skicka" />
</form>
</body>
</html>
Som sagt så är detta mitt första försök, så var lite snälla mot mig
function klar(){
if (!document.boka.cbs.checked)
{
alert("Du måste fylla i om du har ont i hjärtat!");
form.cbs.focus();
return false;
}
if (!document.boka.andning.checked)
{
alert(" Du måste fylla om du har andningsbesvär!");
form.andning.focus();
return false;
}
if (!document.boka.fraktur.checked)
{
alert("Har du brytit benet?");
form.fraktur.focus();
return false;
}
}
Tack och bock Peter S!!
men för att jag skall lära mig lite :stud ´Vill du vara vänlig att förklara
var f = document.boka;
if (!/^\d{1,2}$/.test(f.age.value)) {
alert(" Du måste fylla i din ålder!");
f.age.focus();
return false;
}
Ytterligare en fråga:
om 1 radioknappen är markerad, har jag försökt med:
function klar(){
var f = document.boka;
if (!/^\d{1,2}$/.test(f.age.value)) {
alert(" Du måste fylla i din ålder!");
f.age.focus();
return false;
}
if (!(f.orsak[0].checked ){
alert("Så du ahr ont i hjärtat?");
return true;
}
return true;
}
I den första if-satsen (som är diskriminerande eftersom den inte tillåter en person att vara 100 år eller äldre [har ändrat det nu]) kontrollerar vi med ett reguljärt uttryck att den angivna åldern är ett tal på max tre siffror. (Kontrollen är definitivt inte optimal, men den hindrar i alla fall icke-numeriska tecken).
Vad är det i ditt andra exempel som inte fungerar? Den satsen kommer att köras om du inte kryssat i för akuta bröstsmärtor.
I den första if-satsen (som är diskriminerande eftersom den inte tillåter en person att vara 100 år eller äldre [har ändrat det nu]) kontrollerar vi med ett reguljärt uttryck att den angivna åldern är ett tal på max tre siffror. (Kontrollen är definitivt inte optimal, men den hindrar i alla fall icke-numeriska tecken).
QUOTE]ursäkta, men jag fattar inte riktigt: vad i koden och hur kollas detta dvs vad betyder
Vad är det i ditt andra exempel som inte fungerar? Den satsen kommer att köras om du inte kryssat i för akuta bröstsmärtor.
Det jag vill sedan att i nästa steg, eller rättare sagt på nästa rad så skall det kollas om ngn av rutorna är i fyllda och i så fall skriva i rutan " Du bör omedelbart besöka akuten"
^ = Början på värdet som skall kollas
$ = Slutet på värdet som skall kollas
\d = Matcha ett tal
{1,2} = Matcha mellan en och två förekomster av föregående (i detta fall \d)
function klar(){
var f = document.boka;
if (!/^\d{1,3}$/.test(f.age.value)) {
alert(" Du måste fylla i din ålder!");
f.age.focus();
return false;
}
if (!(f.orsak[0].checked || f.orsak[1].checked || f.orsak[2].checked)){
alert("Du måste fylla i en orsak");
return false;
}[b] else {
alert("Du bör omedelbart besöka akuten!");
}[/b]
return true;
}
function klar(){
var f = document.boka;
if (!/^\d{1,3}$/.test(f.age.value)) {
alert(" Du måste fylla i din ålder!");
f.age.focus();
return false;
}
if (!(f.orsak[0].checked || f.orsak[1].checked || f.orsak[2].checked)){
alert("Du måste fylla i en orsak");
return false;
}[b] else {
alert("Du bör omedelbart besöka akuten!");
}[/b]
return true;
}
nja, inte hellt klar.... det tillkommer flera villkor:
^ = Början på värdet som skall kollas
$ = Slutet på värdet som skall kollas
\d = Matcha ett tal
{1,2} = Matcha mellan en och två förekomster av föregående (i detta fall \d)
Ursäkta Peter , men jag torde vara blåst i huvvet. Man jag fattar inte riktigt hur ovanstående kan användas till att tex kolla att ålder är en siffra mellan 0 och 110?
function klar(){
var f = document.boka;
if (!/^\d{1,3}$/.test(f.age.value)) {
alert(" Du måste fylla i din ålder!");
f.age.focus();
return false;
}
if (f.age.value < 15){
alert("Sök till barn");
return false;
}
if (!(f.orsak[0].checked || f.orsak[1].checked || f.orsak[2].checked)){
alert("Du måste fylla i en orsak");
return false;
} else {
alert("Du bör omedelbart besöka akuten!");
}
if (f.tid[0].checked || f.tid[1].checked || f.tid[2].checked){
alert("Du får tid direkt!");
} else {
alert("Du förs upp på väntelistan");
}
return true;
}
Ursäkta Peter , men jag torde vara blåst i huvvet. Man jag fattar inte riktigt hur ovanstående kan användas till att tex kolla att ålder är en siffra mellan 0 och 110?
tck och bock Peter, du är en klippa!
Nu är det bara en sak kvar(?)
om jag kryssar i
ålder
bröstsmärta
0 - 8 timmar
så kommer det (som det skall) en akert med uppmaning att söka akuten direkt. Men trycker jag på alerten´s OK-knapp, så kommer nästa meddelande att du får tid direkt... Hur kan jag slippa denna alert?
274 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e