webForumDet fria alternativet

Valideringsproblem

8 svar · 276 visningar · startad av silfver

silfverMedlem sedan apr. 20039 709 inlägg
#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? :)

WebbisNetMedlem sedan feb. 20032 182 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;
		}
	}
silfverMedlem sedan apr. 20039 709 inlägg
#3

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

Peter SMedlem sedan dec. 20025 484 inlägg
#4
<form [b]name="f"[/b]...

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

    return true;
}
silfverMedlem sedan apr. 20039 709 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"

Peter SMedlem sedan dec. 20025 484 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;
}

:)

silfverMedlem sedan apr. 20039 709 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

Peter SMedlem sedan dec. 20025 484 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>
silfverMedlem sedan apr. 20039 709 inlägg
#9

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

Genererad på 402 ms · cache AV · v20260730165559-full.f96bc7eb