webForumDet fria alternativet

Vad är det för fel på dennna validering?

JavaScript

13 svar · 603 visningar · startad av bikic

Medlem sedan juni 2006261 inlägg
Frågan#1

if (document.getElementById("fldType").value=="0") {

	if (document.getElementById("fldParent").value==""){
		alert("You must specify which head page it belongs.");document.getElementById("fldParent").select();
		return false;
	}
										
}

Det vill säga, om värdet i fältet fldType = 0 då ska den vid submit reagera om värdet i fldParent = 0.

Medlem sedan juni 200032 967 inlägg
#2

Inte kan det vara så enkelt att det beror på att du skrivit "" istället för "0" i if-satsen?

Annars får du nog berätta på vilket sätt det inte fungerar - samt vad vettig javascriptkonsoll (till exempel den som finns i Firefox) säger om saken.

Medlem sedan juni 2006261 inlägg
#3

Det hade inte med dubbelfnuttarn att göra, fldParent är en selectbox och då fungerar det inte med document.getElementById("fldParent").select(); - fick byta ut detta till document.getElementById("fldParent").focus();

Medlem sedan juni 20019 519 inlägg
#4

bikic skrev:

Det hade inte med dubbelfnuttarn att göra, fldParent är en selectbox och då fungerar det inte med document.getElementById("fldParent").select(); - fick byta ut detta till document.getElementById("fldParent").focus();

Två tips:
1. Hämta bara DOM objekt en gång, istället för varje gång du skall använda den, onödigt att söka upp ett objekt du redan känner till.

2. Nästa gång, bifoga HTML kod så man vet vad alla DOM element är.

Medlem sedan juni 2006261 inlägg
#5

Jag har dock ett annat problem.

Scripet vill liksom inte gå vidare i processen. Den fastnar efter if-satsen med kollen mot fldParent. Vad ska jag göra? Jag har provat med att lägga in en else och return true, men då fungerar inte valideringen alls.

function submitfrm1() {
							
	if (document.getElementById("fldType").value=="0") {

		if (document.getElementById("fldParent").value==""){
			alert("You must specify which head page it belongs.");document.getElementById("fldParent").focus();
			return false;

		}
										
	}

	else if (document.getElementById("fldTitle").value==""){
		alert("Titel saknas.");document.getElementById("fldTitle").focus();
		return false;
									} 
		
	else {

		document.getElementById("frm1").submit();
		return true;

	}

}
Medlem sedan juni 20019 519 inlägg
#6

Vad vill du att den skall göra? För just nu säger du:

Om fldType är 0 gör x annars om fldTitle är en tom sträng gör y, annars gör z

Om både fldTitle och fldType måste kontrolleras måste det vara en egen if fråga på båda, sätt en flagga(variabel) som är satt till true, och om den träffa någon av dessa så sätt den till false och returnera variabeln (true/false).

sen fattar jag inte:

document.getElementById("frm1").submit();
		return true;

.... när kör du egentligen din funktion?

Medlem sedan juni 2006261 inlägg
#7

Jag har ju en if-sats och else if-sats.

Medlem sedan juni 20019 519 inlägg
#8

bikic skrev:

Jag har ju en if-sats och else if-sats.

Ja? Om if frågan inte stämmer, så gå den till else if och sist else.... men så fort den träffar någon av dessa så kommer den inte gå längre.

Medlem sedan juni 2006261 inlägg
#9

Okej,

kan du visa mig hur du hade gjort det, jag är lite osäker på hur du menar.

Medlem sedan juni 20019 519 inlägg
#10

bikic skrev:

Okej,

kan du visa mig hur du hade gjort det, jag är lite osäker på hur du menar.

svara gärna på:

voigtann1 skrev:

sen fattar jag inte:

document.getElementById("frm1").submit();
		return true;

.... när kör du egentligen din funktion?

Medlem sedan juni 2006261 inlägg
#11

Hehe!

Då är vi tillbaka med att jag använder länkar som submitknappar, för att ha koll på CSS-koden vid mouseover, när man har rundade hörn. Vi diskuterade detta en annan gång.

<a href="#" onClick="javascript:submitfrm1();">

Medlem sedan juni 2006261 inlägg
#12

Om mitt script hittar felet >>> if (document.getElementById("fldParent").value=="") <<< och detta åtgärdas på sidan så går den inte vidare. Hur kan jag få den till att göra det?

Medlem sedan juni 20019 519 inlägg
#13

bikic skrev:

Hehe!

Då är vi tillbaka med att jag använder länkar som submitknappar, för att ha koll på CSS-koden vid mouseover, när man har rundade hörn. Vi diskuterade detta en annan gång.

<a href="#" onClick="javascript:submitfrm1();">

Nej, finns inget att diskutera, finns ingen anledning att köra ett a-element som en submit, däremot så return false skall den alltid köra, då du inte vill gå till #, du vill göra en submit om allt är OK, inget annat.

bikic skrev:

Om mitt script hittar felet >>> if (document.getElementById("fldParent").value=="") <<< och detta åtgärdas på sidan så går den inte vidare. Hur kan jag få den till att göra det?

Vad menar du egentligen? Om fldParent har ett värde som kommer if frågan aldrig köra, då det inte är sant att fldParent.value är tomt, då gå den till else frågan, eller till nästa else if för att se om den stämmer.

Vad vill du kontrollera och vad skall koden göra vid dina kontroller? Är svårt att förstå vad du vill göra...

Och om du ändå jobbar med jquery så ser jag inte varför du skall förstöra HTML strukturen med inline events :(

Medlem sedan juni 2006261 inlägg
#14

Jag arbetar med jquery med vissa funktioner bara. Blir mycket enklare med inline events i html koden. Men visst, klart det är snyggare med jquery.

Jo så här är det (ska försöka förklara bättre, vilket jag uppenbarligen har stora problem med) ;)

Jag har flera inputs, selects och textareas i mitt forumlär där vissa är tvingande. Här har jag en selectbox där man väljer olika typer (fldType), om du då väljer ett alternativ från den selectboxen (ex. 0) så ska valideringen kontrollera en annan select (fldParent). Denna select ska endast kontrolleras om fldtype = 0. Om man inte fyllt i något här så ska den reagera, vilket den gör. Du tvingas nu välja ett alternativ för (fldParent), men det är här scriptet slutar att fungera. Och det är det jag behöver hjälp med.

Tacksam för svar!

257 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
124 ms — deklarationer (db)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)
119 ms — ändringar (db)