webForumDet fria alternativet
Logga in / Bli medlem

Valideringsproblem

JavaScript

8 svar · 276 visningar · startad av silfver

Medlem sedan apr. 200312 679 inlägg
Trådstart#1

Eftersom jag inte kan någonting och javascript så överlåter jag mitt problem åt er som kan. Det är nämligen så att man kan posta ett inlägg även om fälten är tomma:

function validateForm() {
    if (document.f.namn.value=="") {
        alert("Du måste fylla i ett namn.");
        return false;
    } else if (document.f.msg.value==""){
        alert("Du måste fylla i ett meddelande.");
        return false;
    }
}
<form id="f" action="?start&amp;do=new" method="post" onsubmit="return validateForm()">
	<p><label for="namn">Ditt namn:</label><br />
	<input type="text" name="namn" id="namn" /></p>

	<p><label for="msg">Ditt meddelande:</label><br />
	<textarea name="msg" cols="25" rows="4" id="msg"></textarea></p>

	<p><button name="submit" type="submit" value="send">Hit me!</button></p>
</form>

Förslag någon? :)

Medlem sedan feb. 20032 027 inlägg
#2

ser ingen return true

så här ser min ut

function okReg() {
	if ((document.forms[0].txtUsername.value == "")) {
		alert("Du måste skriva i ett användarnamn.");
		document.forms[0].ipadress.focus();
		return false;
		}else{
		return true;
		}
	}
Medlem sedan apr. 200312 679 inlägg
#3

Jag kan ju inte direkt använda ditt javascript. Ser ju inte ens likadant ut. Fler förslag?

Medlem sedan dec. 20025 483 inlägg
#4
<form [b]name="f"[/b]...

function validateForm(){
    if (document.forms["f"].elements["namn/msg"].value == "")
        ...

    return true;
}
Medlem sedan apr. 200312 679 inlägg
#5

Peter S skrev:

<form [b]name="f"[/b]...

function validateForm(){
    if (document.forms["f"].elements["namn/msg"].value == "")
        ...

    return true;
}

Aha, men skriver jag name="f" så validerar den inte XHTML. Eller har jag fel?

r\

Line 59, column 11: there is no attribute "name"

Medlem sedan dec. 20025 483 inlägg
#6

name finns inte i striktare versioner. Gör så här istället:

<form onsubmit="return validateForm(this)"...

function validateForm(obj){
    if (obj.elements["namn/msg"].value == "")
        ...

    return true;
}

:)

Medlem sedan apr. 200312 679 inlägg
#7

Peter S skrev:

name finns inte i striktare versioner. Gör så här istället:

<form onsubmit="return validateForm(this)"...

function validateForm(obj){
    if (obj.elements["namn/msg"].value == "")
        ...

    return true;
}

:)

Det där fungerar inte heller. Men jag utgår från att jag missuppfattar ditt inlägg. :) Skulle du kunna skriva lite mer utförligt hur jag ska göra? Eftersom jag knappt förstår mig på javascript alls så blir det lätt fel. :p

Medlem sedan dec. 20025 483 inlägg
#8
function validateForm(obj) {
    if (obj.elements["namn"].value=="") {
        alert("Du måste fylla i ett namn.");
        return false;
    } else if (obj.elements["msg"].value==""){
        alert("Du måste fylla i ett meddelande.");
        return false;
    }
    return true;
}

<form id="f" action="?start&do=new" method="post" onsubmit="return validateForm(this)">
	<p><label for="namn">Ditt namn:</label><br />
	<input type="text" name="namn" id="namn" /></p>

	<p><label for="msg">Ditt meddelande:</label><br />
	<textarea name="msg" cols="25" rows="4" id="msg"></textarea></p>

	<p><button name="submit" type="submit" value="send">Hit me!</button></p>
</form>
Medlem sedan apr. 200312 679 inlägg
#9

Där satt den. Tack för hjälpen! :)

274 ms totalt · 4 externa anrop · v20260731065814-full.51f67c91
125 ms — deklarationer (db)
0 ms — hämta statistik (cache)
143 ms — hämta tråd, inlägg och bilagor (db)
128 ms — ändringar (db)