webForumDet fria alternativet

maxlängd...

JavaScriptur Javascript

13 svar · 414 visningar · startad av Fredrik.an

Fredrik.anMedlem sedan sep. 2001162 inlägg
#1

Kan man inte sätta en textarea på maxlängd, alltså om man har ett kontaktsystem och inte vill att de ska kunna skriva mer än 500 tecken!

magnusfernstromMedlem sedan mars 20033 686 inlägg
#2

Jo, genom HTML.

<input type="text" maxlength="40">
PalleMedlem sedan apr. 20003 174 inlägg
#3

Nej det kan man inte.. du får använda JavaScript, ex.

[red]<form name="foo">
    <textarea name="bar" [b]onkeyup="if(document.foo.bar.value.length>500){document.foo.bar.value=document.foo.bar.value.substr(0,500)}"[/b]></textarea>
</form>[/red]
magnusfernstromMedlem sedan mars 20033 686 inlägg
#4

Va? Jag använder mig av det...

PalleMedlem sedan apr. 20003 174 inlägg
#5

Re: maxlängd...

Fredrik.an skrev:

Kan man inte sätta en textarea på maxlängd, alltså om man har ett kontaktsystem och inte vill att de ska kunna skriva mer än 500 tecken!

magnusfernstrom:
På en textarea kan man inte det. :)

magnusfernstromMedlem sedan mars 20033 686 inlägg
#6

Oooh! Såg fel! :r

Jag ber om ursäkt Palle och Fredrik.an.

LarsGMedlem sedan dec. 200012 464 inlägg
#7

Flyttas från ASP

Fredrik.anMedlem sedan sep. 2001162 inlägg
#8

Det funkar inte så jättebra, eller är det jag som har fattat allt fel nu?

Koden:

<html>
<head>
<title>Kontakta | Tillmar.net</title>
<link href="style.css" rel="stylesheet" type="text/css">
</head>

<body>
<form method="post" action="spara.asp">
<table border="0" width="100%">
				<tr>
    <td width="11%">Namn:</td>
    <td width="89%"><input type="text" name="namn"></td>  
 </tr>
				<tr>
   <td>Rubrik:</td>
   <td><input type="text" name="rubrik"></td>  
</tr>
				<tr>
   <td>Rubrik:</td>
   <td>[B]<form name="foo">
    <textarea name="texten" onkeyup="if(document.foo.texten.value.length>500){document.foo.texten.value=document.foo.texten.value.substr(0,500)}"></textarea>
</form>[/B]</td>  
</tr>
 <tr>
   <td></td>
   <td><input type="submit" value="Skicka Mejlet">
      </td>  
</tr>
</table>
</form>
</body>
</html>

Vore tacksam för lite hjälp!

SebbeMedlem sedan jan. 20032 285 inlägg
#9
<textarea name="texten" onkeyup="if(document.foo.texten.[b]innerHTML[/b].length>500){document.foo.texten.[b]innerHTML[/b]=document.foo.texten.[b]innerHTML[/b].substr(0,500)}"></textarea>
dAEkMedlem sedan feb. 20041 816 inlägg
#10

**if (this.value.length>500)...**osv är mindre att skriva :)

Klistrar man in text i rutan mha musen kommer inte scriptet göra vad det skall, så det kanske vore bra att köra en liknande procedur vid onblur också, fast då kanske varna innan texten kapas. Jag brukar alltid skriva i notepad/wordpad istället för direkt på sidorna och sedan klistra in texten när jag är nöjd.
Anledningen är att ifall strömmen skulle gå, eller nåt annat oväntat händer när man skrivit en halv roman, då är det inte helt tokigt o ha en kopia sparad på datorn!

Fredrik.anMedlem sedan sep. 2001162 inlägg
#11

Sebbe skrev:

<textarea name="texten" onkeyup="if(document.foo.texten.[b]innerHTML[/b].length>500){document.foo.texten.[b]innerHTML[/b]=document.foo.texten.[b]innerHTML[/b].substr(0,500)}"></textarea>

Funkade inte, och det gick inte ens att skicka iväg det :S

PalleMedlem sedan apr. 20003 174 inlägg
#12

Du har med lite för mycket kod ur mitt exempel.
Har nu testat detta och det fungerar galant. :)

[red]<html>
<head>
	<title>Kontakta | Tillmar.net</title>
	<link href="style.css" rel="stylesheet" type="text/css">
</head>
<body>

<form method="post" action="spara.asp">
<table border="0" width="100%">
	<tr>
		<td width="11%">Namn:</td>
		<td width="89%"><input type="text" name="namn"></td>  
 	</tr>
	<tr>
		<td>Rubrik:</td>
		<td><input type="text" name="rubrik"></td>  
	</tr>
	<tr>
		<td>Meddelande:</td>
		<td><textarea name="texten" onkeyup="if(this.value.length>500){this.value=this.value.substr(0,500)}"></textarea></td>  
	</tr>
	<tr>
		<td>&nbsp;</td>
		<td><input type="submit" value="Skicka Mejlet"></td>  
	</tr>
</table>
</form>

</body>
</html>[/red]
Fredrik.anMedlem sedan sep. 2001162 inlägg
#13

Palle:
Jag sökte nya lösningar, elelr ajg skippade textarea och körde på input... Men det skapade ju oxå problem.... Den stoppar efter 300 tecken, men skricer jag 301 får jag felmmedelande, och min tanke för att säga till fungerar inte... nå?

<form name="add" method="post" action="dintext.asp?do=add">
  <TABLE width="342">
			<tr>
				<td valign="top" height="19" width="418"><font size="1"><b>F&ouml;rnamn:</b><br>
										<input name="fnamn" type="text" id="fnamn" size="20" value="<%=Request.form("fnamn")%>"></font></td>
			</tr>
			<TR> 
      <TD width="418" height="19" valign="top"><font size="1"><b>Din text:</b><br>
										<input name="meddelande" type="text" id="adress" size="51" value="<%=Request.form("meddelande")%>" maxlength="300"></font> 
    </TR>
			<TR> 
      <TD width="418" height="19" valign="top"><INPUT TYPE="Submit" value="Skicka best&auml;llning"> 

    </TR>
		</TABLE>

</form>
	<font color="red"><b>
	<h5>
<%
If Request.QueryString("do") = "add" Then

Set MinCon = Server.CreateObject("ADODB.Connection")
Set rs = Server.CreateObject("ADODB.RecordSet")

MinCon.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data source=" & Server.MapPath("db/bokning.mdb")
SQL = "SELECT * From bokning"
rs.Open SQL, MinCon, 1, 2

rs.AddNew
rs("fnamn") = Request.Form("fnamn")
rs("meddelande") = Request.Form("meddelande")
rs("date") = Date

if len(rs("meddelande")) > 300 then
   response.write "För långt"
   
elseif request.form("fnamn") = "" Then
response.write "Du glömde skriva ditt förnamn."

elseif request.form("meddelande") = "" Then
response.write "Du glömde skriva ditt meddelande."

else

rs.Update
rs.Close

Response.Redirect("bek.asp")
End If 
End If

%>
PalleMedlem sedan apr. 20003 174 inlägg
#14

Nja.. du har lite knas i din kod. ;)
Testa följande:

[red]<form name="add" method="post" action="dintext.asp?do=add">
	<table width="342">
		<tr>
			<td valign="top" height="19" width="418">
				<font size="1">
					<b>Förnamn:</b><br>
					<input name="fnamn" type="text" id="fnamn" size="20" value="<%=Request.form("fnamn")%>">
				</font>
			</td>
		</tr>
		<tr> 
			<td width="418" height="19" valign="top">
				<font size="1">
					<b>Din text:</b><br>
					<input name="meddelande" type="text" id="adress" size="51" value="<%=Request.form("meddelande")%>" maxlength="300">
				</font>
			</td>
		</tr>
		<tr> 
			<td width="418" height="19" valign="top"><INPUT TYPE="Submit" value="Skicka beställning"></td>
		</tr>
	</table>
</form>

<font color="red"><b>
<h5>
<%

If Request.QueryString("do") = "add" Then

	strFnamn = Replace(Request.Form("fnamn"), "'", "''")
	strMeddelande = Replace(Request.Form("meddelande"), "'", "''")
	
	If Len(strFnamn) = 0 Then
		Response.write "Du glömde skriva ditt förnamn."
	ElseIf Len(strMeddelande) = 0 Then
		Response.Write "Du glömde skriva ditt meddelande."
	ElseIf Len(strMeddelande) > 300 Then
		Response.Write "För långt"
	Else

		Set MinCon = Server.CreateObject("ADODB.Connection")
			MinCon.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data source=" & Server.MapPath("db/bokning.mdb")
				MinCon.Execute("INSERT INTO bokning(fnamn,meddelande,date) VALUES('"& strFnamn &"','"& strMeddelande &"','"& Date() &"')"),,128
			MinCon.Close
		Set MinCon = Nothing

	End If

	Response.Redirect("bek.asp")

End If

%></h5>
</b></font>[/red]
254 ms totalt · 3 externa anrop · v20260731065814-full.29ac60f6
0 ms — hämta forumlista (cache)
124 ms — hämta statistik (db)
129 ms — hämta tråd, inlägg och bilagor (db)