webForumDet fria alternativet

"Alert problem"

ASP

36 svar · 877 visningar · startad av joel_joel88 · sida 2 av 2

Frågan, av joel_joel88

Hej! Det är så att jag håller på med en gästbok... I fall någon inte fyller i sitt namn ex. så ska det komma upp en ruta där det står "Du måste fylla i det namn!". Detta gör jag med denna kod! if trim(request(namn)) = "" then response.write "<script>alert('Du måste fylla i ditt namn!')</script>" end if Fast nu så avbryts i SQL-satsen, utan körs direkt man tryckt på OK. Går det avbryta

Läs frågan i sin helhet →
Medlem sedan juni 200032 967 inlägg
#21

Det fungerade när det var ett formulär bara. Men när jag la in flera if-satser så fungerade det ej.

Kod eller url tack.

Medlem sedan nov. 20021 222 inlägg
#22

Fast det är nog jag som är dum, kan väl inte fungera med den koden för det är ju ELSE på sista om ni förstår vad jag menar.
Någon som vet hur man ska göra när man ska ha flera if satser så?

<script type="javascript">
<!--
function Save(){
		if (document.gbook.namn.value==""){
			alert("Du glömde namnet!");
			document.gbook.namn.focus();
			return false;
}
		if (document.gbook.rubrik.value==""){
			alert("Du glömde en rubrik!");
			document.gbook.namn.focus();
			return false;
}
		if (document.gbook.meddelande.value==""){
			alert("Du glömde ett meddelande!");
			document.gbook.namn.focus();
			return false;

		}else {

		  document.gbook.action="gbook.asp?action=save";
		  document.gbook.target="_self";
		  document.gbook.submit();
}
                        
 }

-->
</script>
Medlem sedan dec. 19996 721 inlägg
#23

Skippa else:n. Eftersom du kör return på alla de andra, så kommer scriptet ändå att hoppa ur om det blir "fel"

Medlem sedan nov. 20021 222 inlägg
#24

ok, men hur ska jag göra så att det ska spara koden ska köras om alla är i fyllda då?

Medlem sedan okt. 2004159 inlägg
#25

Gör så här då:
function Save(){
var msg="";
if (form1.namn.value==""){msg+="- Namnet\n"};
if (form1.rubrik.value==""){msg+="- Rubriken\n"};
if (form1.meddelande.value==""){msg+="- Meddelande\n"};

if (msg!=""){
window.alert("Följande uppgifter saknas:\n" + msg);
return false;
}
else{
...
...
}

Medlem sedan nov. 20021 222 inlägg
#26

ok, så går det ju också göra. Men hur har du gjort på den första grejjen du skicka. Har du bara så att det kommer upp om man inte har fyllt i sitt namn?

Måste kunna utöka den koden, till flera formulär?

Medlem sedan juni 200032 967 inlägg
#27

Varför har du flera formulär? Du kan ju ändå bara skicka ett formulär åt gången?

Medlem sedan nov. 20021 222 inlägg
#28

Ja menar flera inputs. Alltså att koden känner av om man har missat namn, rubrik och meddelande.

Medlem sedan dec. 20025 483 inlägg
#29
<script type="javascript">

Skall vara

<script type="[b]text/[/b]javascript">
Medlem sedan okt. 2004159 inlägg
#30

Du kan väl utöka den till:

function Save(){
		if (form1.edtRubrik.value==""){
			alert("Rubrik måste anges.");
			document.form1.edtRubrik.focus();
			return false;
		}else if (form1.edtNamn.value==""){
			alert("Namn måste anges.");
			document.form1.edtNamn.focus();
			return false;
		}else {
		  document.form1.action="galleri.aspx?action=save";
		  document.form1.target="_self";
		  document.form1.submit();
                         }
	}

Är osäker om det skall vara "else if" eller "elseif" - testa

Jag tycker nog att min andra variant är bättre. Då får man veta alla fel på en gång. Annars får man kanske 3-4 popup-rutor vilket är irriterande.

Medlem sedan nov. 20021 222 inlägg
#31

Men om man kör på din andra variant. Vad ska det stå i msg=""
och vad ska det stå efter else...lite oklart.

Gör så här då:
function Save(){
var msg="";
if (form1.namn.value==""){msg+="- Namnet\n"};
if (form1.rubrik.value==""){msg+="- Rubriken\n"};
if (form1.meddelande.value==""){msg+="- Meddelande\n"};

if (msg!=""){
window.alert("Följande uppgifter saknas:\n" + msg);
return false;
}
else{
...
...
}
Medlem sedan okt. 2004159 inlägg
#32

Efter "else" där det bara är punkter skall det stå samma sak som tidigare, d.v.s
document.form1.action="galleri.aspx?action=save";
document.form1.target="_self";
document.form1.submit();

Det skall vara msg="" för att tömma/nollställa variabeln.

En kort förklaring på koden:
1. Töm variabeln msg, d.v.s. sätt den till ""
2. Kontrollera fälten. Om ett villkor uppfylls utökas variabeln msg med angiven text.
3. Om msg är annat än "" d.v.s om något glömt att fyllas i, skrivs msg ut och funktionen returnerar false, d.v.s. ingenting händer när man trycker på knappen.
4. Om msg fortfarande är "" så är allting ok ifyllt om man kan bestämma vad som skall hända när formuläret skickas och därefter skicka iväg det.

Medlem sedan nov. 20021 222 inlägg
#33

Ok. Men koden fungerar inte :(
Får felmeddelandet Save is not defined.

Medlem sedan juni 200032 967 inlägg
#34

Visa hela koden, alt. en url.

Medlem sedan nov. 20021 222 inlägg
#35
<script type="javascript">
<!--
function Save(){
var msg="";
if (document.gbook.namn.value==""){msg+="- Namnet\n"};
if (document.gbook.rubrik.value==""){msg+="- Rubriken\n"};
if (document.gbook.meddelande.value==""){msg+="- Meddelande\n"};

if (msg!=""){
window.alert("Följande uppgifter saknas:\n" + msg);
return false;
}
else{
document.gbook.action="gbook.asp?action=save";
document.gbook.target="_self";
document.gbook.submit();
}
}
-->
</script>
<form name="gbook" action="" method="post"> 
<input type="button" value=" Posta inlägg " onClick="Save();">
Medlem sedan juni 200032 967 inlägg
#36

Läs Peters inlägg:

Peter S skrev:

<script type="javascript">

Skall vara

<script type="[b]text/[/b]javascript">
Medlem sedan nov. 20021 222 inlägg
#37

Aha.....tackar nu fungerar det :r

Tackså mycket alla nu!

259 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
126 ms — deklarationer (db)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)
128 ms — ändringar (db)