webForumDet fria alternativet

Radera "value" i formulärfält vid klick

JavaScript

11 svar · 344 visningar · startad av DanneSt

Medlem sedan feb. 20041 311 inlägg
Frågan#1

Hur gör jag om jag vill att ett formulärfält som innehåller ett förinställt value (t.ex. "Skriv ditt meddelande här!") ska försvinna så fort användaren har klickat i fältet eller "tabbat" sig dit?

Medlem sedan dec. 20025 483 inlägg
#2
onfocus="if (this.value == 'Skriv ditt meddelande här!') this.value = ''"
Medlem sedan feb. 20041 311 inlägg
#3

Hmm, spännande! Ska prova när jag kommer hem efter jobbet! :-)

Medlem sedan feb. 20041 311 inlägg
#4

Näe, jag behöver nog lite mer vägledning med detta.

Ska denna kodsnutt ligga i <input>- eller <textarea>-taggen eller i <body>-taggen?

Provade så här, vilket inte gick:

<textarea onfocus="if (this.value == 'Skriv ditt meddelande här!') this.value = ''" name="meddelande" rows="6" cols="51" style="font-family: verdana; font-size: 10px; background-color: #eeeeee; border: #000000 1px solid">textarea>
Medlem sedan dec. 20025 483 inlägg
#5

Det bestämmer du. Men som du skrev i det förra inlägget skall det finnas ett defaultvärde, var är det?

<textarea onfocus="if (this.value == 'Skriv ditt meddelande här!') this.value = ''" name="meddelande" rows="6" cols="51" style="font-family: verdana; font-size: 10px; background-color: #eeeeee; border: #000000 1px solid">Skriv ditt meddelande här!</textarea>

:)

Medlem sedan feb. 20041 311 inlägg
#6

Ja, jag hade glömt det! :r
Har lagt in det värdet i "mess" och nu har jag fått till det!!

<textarea onfocus="this.value='';" onblur="if (this.value=='') this.value='<%=mess%>';" name="meddelande" rows="6" cols="51" style="font-family: verdana; font-size: 10px; background-color: #eeeeee; border: #000000 1px solid"><%=mess%></textarea>

Tack för hjälpen Peter S! (y)

Medlem sedan dec. 20025 483 inlägg
#7

Nemas problemas :bire

Medlem sedan feb. 20041 311 inlägg
#8

Hmm, det blev liiiite tokigt ändå.
Om nu besökaren skriver ett meddelande, klickar någon annanstans så att inte fältet är aktivt längre, men kommer på något mer han/hon vill skriva och klickar för att fylla på...då försvinner ju allt som redan är skrivet...onfocus="this.value='';"...typ!

Då ska jag kanske använda din if-sats istället?

Medlem sedan dec. 20025 483 inlägg
#9

DanneSt skrev:

Då ska jag kanske använda din if-sats istället?

Det låter som en bra idé. :)

Medlem sedan feb. 20041 311 inlägg
#10

Klockers! :-D

Medlem sedan feb. 20041 311 inlägg
#11

Har du även något förslag på hur jag ska få formuläret att känna av att det saknas något ifyllt fält? Tidigare hade jag så att den kände av vissa fält genom denna kod:

IF Not Len(namn) <> 0 then
	session("falt") = innehall
	Session("kontakta_mig") = "Du glömde att skriva in ditt namn!"
	Response.Redirect sida
ELSEIF Not Len(telefon) <> 0 then
	session("falt") = innehall
	Session("kontakta_mig") = "Du glömde att fylla i ett telefonnummer!"
	Response.Redirect sida
ELSEIF Not Len(Meddelande) <> 0 then
	session("falt") = innehall
	Session("kontakta_mig") = "Du glömde att fylla i ditt meddelande!"
	Response.Redirect sida
END IF

Men nu blir det ju så att alla fält alltid blir ifyllt med något.
Det skulle väl gå att lösa genom att sätta premisserna att inte godkänna fält som är ifyllt med värdet i "mess" t.ex.?
Men jag får inte ihop "Not <> 0" riktigt...
Förslag?

Medlem sedan dec. 20025 483 inlägg
#12

Jag förstår inte riktigt. Om fältet "namn" måste vara ifyllt, kan du exempelvis använda

namn = request.form("namn") & ""
if len(namn) = 0 then
  ' vidta åtgärd
end if

Om fält inte får innehålla "mess":

meddelande = request.form("meddelande") & ""
if instr(meddelande, "mess", 1) <> 0 then  ' 1 för case-insensitive
  ' fältet innehåller "mess"
end if

:)

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