PDA

View Full Version : kontrollera att formulärfält är ifyllda


annan
2000-06-14, 12:38
jag har ett skript som kollar att ett visst fält är ifyllt i formuläret då man klickar på submit-knappen:

<SCRIPT LANGUAGE="JAVASCRIPT">
<!--
function kolla(obj) {
if (obj.namn.value.length == 0) {
alert('Du glömde fylla i namn');
return false;
}
else { return true; }
}
//-->
</script>

och i form-taggen ser det ut så här:

<form action="blabla" method="POST"
onsubmit="return kolla(this);">

men hur gör jag om jag vill kontrollera att flera fält är ifyllda då man klickar på submit?
jag har nämligen 5 fält som "måste" vara ifyllda, och vill att kontrollen ska fungera på samma sätt.

tacksam för svar.

nicclas
2000-06-14, 20:40
Studera koden nedan. Den gör ungefär det du ville, även om det bara är två fält. Är det något som är oklart, fråga igen!


<HTML>
<HEAD>
<TITLE>Registrera prenumeration hos AllaNyheter.com </TITLE>

<SCRIPT LANGUAGE="JavaScript">
function kolla() {
var checku=document.svar.url.value;slash=0;
var checke=document.svar.epost.value;at=0;
if(checku.length==0 && checke.length==0){
alert("Fyll först i adress och epostadress!");
return false;
}

for (i=0; i<checku.length; i++)
if(checku.charAt(i)=="/") slash++;
for (i=0; i<checke.length; i++)
if(checke.charAt(i)=="@") at=1;

if (slash<3) {
alert("Skriv en fullständig URL, inklusive filnamn!");
url.focus();
return false;
}
else{
if (at==0) {
alert("Skriv din epostadress!");
epost.focus();
return false;
}else
document.svar.submit();
}
}
</SCRIPT>
</HEAD>
<BODY bgcolor=#709060>
<H2>Registrera prenumeration av nyheter via AllaNyheter.com </H2>

<FORM NAME="svar" METHOD="GET" ACTION="testres.html">
<TABLE>
<TR><TD>Vilken nyhetskälla?</TD>
<TD><SELECT name="news">
<OPTION> Välj en nyhetskälla
<OPTION VALUE="DNe">Dagens Nyheter Ekonomi
<OPTION VALUE="DNi">Dagens Nyheter Inrikes
<OPTION VALUE="DNu">Dagens Nyheter Utrikes
<OPTION VALUE="NT">Ny Teknik
<OPTION VALUE="AF">Aftonbladet
<OPTION VALUE="IDG">IDG online
<OPTION VALUE="EX">Expressen
</SELECT></TD></TR>
<TR><TD colspan=2 HEIGHT=75 VALIGN=bottom>Skriv fullständig adress till den websida, där <BR>
nyheterna ska visas.<BR> Till exempel: http://www.telia.com/~u15001234/index.html</TD></TR>
<TR><TD colspan=2><INPUT TYPE="TEXT" NAME="url" SIZE=60 MAXLENGTH=100></TD></TR>
<TR><TD colspan=2 HEIGHT=35 VALIGN=bottom>Skriv Din e-postadress dit anvisningarna kommer att skickas.</TD></TR>
<TR><TD colspan=2><INPUT TYPE="TEXT" NAME="epost" SIZE=60 MAXLENGTH=80></TD></TR>
<TR><TD colspan=2><INPUT TYPE="button" VALUE=" Klar " onClick="kolla();"></TD></TR>
</TABLE>
</FORM>
</BODY>
</HTML>


Samtidigt kan jag ju utlysa en gissningstävling om vad jag skall använda ovanstående sida till :e

/nicclas @ http://www.allanyheter.com

Plutt
2000-06-19, 07:25
Jag tror man ska kunna ha nyheter på sin egen sida...(?)

Vad vinner jag??

Ehh... en sak till, på http://www.erimax.com/gbook/index.cgi?book=1725 så vill jag att man inte ska kunna skicka iväg något meddelande ifall man inte skrivit något namn. Men koden som Annan visade funkade inte! Den skickade ändå... Warum? Hur gör jag?? inputen heter name ( <input class=erimax type="text" name=name size="15" style="background-color:#000000; color:#fffFFF; font-family: verdana,Arial; font-size: 8pt; border-color:#ff00ff">)
Hejdå
------------------
God Jul
Plutt
http://pellefant.just.nu

[Redigerat av Plutt den 19 jun 2000]

nicclas
2000-06-19, 09:46
Hejsan,

På din sida finns,

<form action="index.cgi" method="POST" name="post">

ändra till,

<form action="index.cgi" method="POST"
name="post" onsubmit="return kolla(this);">

och skriv in Javascript-koden som finns i inlägget inom <head> taggarna så fungerar det nog...

Grattis, rätt svar. Vad du vinner? Ja, vad vill du ha? En promenad kanske? :e

/nicclas @ http://www.nic-sys.se

Plutt
2000-06-19, 10:17
Wow! Tack!!! Jippi!!!

Ehh... när ska vi ta vår promenad? För jag hoppas på att få ta den tillsammans med dej :)

Yeah yeah!


ehh... hur gör jag för att på samma sätt kontrollera så de skriver en dikt om mej? Alltså textarea ...
------------------
God Jul
Plutt
http://pellefant.just.nu

[Redigerat av Plutt den 19 jun 2000]

[Redigerat av Plutt den 20 jun 2000]

jontas
2000-06-25, 23:54
Tjohej!

Nu är det så att jag har 5 fält som skulle behöva kollas. Enklaste vore om det finns en lösning för att kolla om fälten är ifyllt med något överhuvudtaget. Om dom är helt tomma så skulle jag vilja ha upp en alert("Fyll i alla fält, Tack !")

Har försökt knepa och knåpa om det scriptet som skrevs här ovan men förgäves ... :(

nicclas
2000-06-26, 08:32
Kan du posta sidan du har de 5 fälten på här? Det blir det lite enklare att visa hur man kan göra då...

/nicclas

jontas
2000-06-26, 21:26
Koden ser ut något som nedan:


<input type="TEXT" size="15" name ="fd_Rubrik" maxlength="15">
<br>
<input type="text" size="40" name="fd_Text" value="<MAX 80 tecken>" maxlength="80">
<br>
<input type="text" size="6" name="fd_Pris" maxlength="6">
<br>
<input type="TEXT" size="15" name="fd_Namn" maxlength="15">
<br>
<input type="TEXT" size="15" name="fd_Tel" maxlength="15">
<br>
<input type="TEXT" size="30" name="fd_Epost" maxlength="30">


Jag vill endast kolla att ALLA fält innehåller 'något'. Det är till ett annonstorg så jag antar att den som vill sälja inte "plojjar" för mycket.

Tack på förhand ..

spango
2000-06-27, 00:03
Tja:

function kolla(f){
for(var j = 0; j < f.elements.length; j++){
if(!f.elements[j].value && f.elements[j].type.toLowerCase == "text"){
alert("Fyll i alla fält!");
f.elements[j].focus();
return false;
}
}
return true;
}


och sedan i <form>-taggen:
onsubmit="return kolla(this);"
kollar att alla <input type=text> är ifyllda.


------------------
-- spango
Jag skiter i allt!

[Redigerat av spango den 27 jun 2000]


[Redigerat av spango den 27 jun 2000]


[Redigerat av spango den 27 jun 2000]

jontas
2000-06-27, 02:20
Min <form> ser ut så här:


<FORM NAME="ADD" METHOD="POST" ACTION="add2databas.asp">