D DiDjo Medlem sedan nov. 2002 544 inlägg Frågan 17 jan. 2003 18:16 #1 Hur gör man en kod som gör följande:
Minst 75 tecken och inte mer än två bokstäver i rad i en textruta!
Tanken är att den ska vara till en dagbok, så man inte skulle kunna fuska! Sen om det går att man inte kan skriva samma ord två ggr i rad! Men bara de två första skulle va bra :D
D DiDjo Medlem sedan nov. 2002 544 inlägg Är det igen som vet??? Ett script som gör att man minst måste skriva 75 tecken och att man inte får ha mer än 2 bokstäver irad!?!?!? Snälla någon?
P Peter S Medlem sedan dec. 2002 5 483 inlägg Någonting sådant här kanske:
<head>
<script type="text/javascript">
<!--
function checkChars(o){
var words = [];
if(o.value.indexOf(" ")!=-1) words = o.value.split(" ");
for(var i=0, j=1; i<words.length; i++, j++){
if(words[i]==words[j]) alert("Du får inte skriva samma ord två gånger i rad");
}
};
window.onunload = function(){
if(document.forms['foo'].elements['bar'].value.length < 75) alert("Du måste skriva minst 75 stycken tecken");
};
//-->
</script>
</head>
<body>
<form name="foo">
<textarea name="bar" rows="15" cols="50" onkeyup="checkChars(this)"></textarea>
</form>
</body>
:)
D DiDjo Medlem sedan nov. 2002 544 inlägg åååå tack så mycke! Jag har sökt i forumet men inte hittat nått.... bra! TACKAR :birp!
D DiDjo Medlem sedan nov. 2002 544 inlägg Men! Meddelandet kommer upp! Men inlägget postas ändå!
Hur gör man e stopp????
<title>DiDjo Community - Skriv i Dagboken </title>
<script type="text/javascript">
<!--
function checkChars(o){
var words = [];
if(o.value.indexOf(" ")!=-1) words = o.value.split(" ");
for(var i=0, j=1; i<words.length; i++, j++){
if(words[i]==words[j]) alert("Du får inte skriva samma ord två gånger i rad");
}
};
window.onunload = function(){
if(document.forms['form1'].elements['text'].value.length < 75) alert("Du måste skriva minst 75 stycken tecken");
};
//-->
</script>
</head>
<body>
<script>
function submitonce(theform){
if (document.all||document.getElementById){
for (i=0;i<theform.length;i++){
var tempobj=theform.elements[i]
if(tempobj.type.toLowerCase()=="submit"||tempobj.type.toLowerCase()=="reset")
tempobj.disabled=true
}
}
}
</script>
<%
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & server.mappath ("databas/dagbok.mdb")
Set rs = Server.CreateObject("ADODB.Recordset")
Addera = "SELECT * FROM dagbok "
rs.Open Addera, Connect, 3, 3
if request.querystring("action")="spara" then
rs.addnew
rs("vems") = session("user")
rs("rubrik")=request.form("rubrik")
rs("text")=request.form("text")
rs("vemsid")=session("id")
rs("datum")=now
rs.update
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & server.mappath ("databas/DiDjo_com_nya08745745745.mdb")
Set rs = Server.CreateObject("ADODB.Recordset")
Addera = "SELECT * FROM anv where id='"&session("id")&"'"
rs.Open Addera, Connect, 3, 3
rs("status") = rs("status") + poangdagbok
rs.update
response.redirect "dagbok.asp?id="&session("id")
end if
%>
P Peter S Medlem sedan dec. 2002 5 483 inlägg Du kanske kan använda en if-sats i ASP-koden för att avgöra om det skall postas, typ:
If Len(Request.QueryString("text")) > 74 Then
' Resten av ASP-koden...
End If
:)
D DiDjo Medlem sedan nov. 2002 544 inlägg ööö! Jag har hjärnsläpp.... vart ska jag lägga den da?
P Peter S Medlem sedan dec. 2002 5 483 inlägg Lägg all den ASP-kod som du postade i ett tidigare inlägg där det står " ' Resten av ASP-koden... ".
:)
C colione Medlem sedan juni 2001 4 421 inlägg D DiDjo Medlem sedan nov. 2002 544 inlägg Ja nu fungerar det! Men så fort man lämnar sidan så kommer meddelandet upp! Ska JAVAscriptet också ligga innanför den?
D DiDjo Medlem sedan nov. 2002 544 inlägg Meddelandet kommer upp men när man skriver rätt så postas inte inlägget!
D DiDjo Medlem sedan nov. 2002 544 inlägg Hela sidan? Här ä den utan title och sånt:
<script type="text/javascript">
<!--
function checkChars(o){
var words = [];
if(o.value.indexOf(" ")!=-1) words = o.value.split(" ");
for(var i=0, j=1; i<words.length; i++, j++){
if(words[i]==words[j]) alert("Du får inte skriva samma ord två gånger i rad");
}
};
window.onunload = function(){
if(document.forms['form1'].elements['text'].value.length < 75) alert("Du måste skriva minst 75 stycken tecken");
};
//-->
</script>
</head>
<body>
<script>
function submitonce(theform){
if (document.all||document.getElementById){
for (i=0;i<theform.length;i++){
var tempobj=theform.elements[i]
if(tempobj.type.toLowerCase()=="submit"||tempobj.type.toLowerCase()=="reset")
tempobj.disabled=true
}
}
}
</script>
<%If Len(Request.QueryString("text")) > 74 Then%>
<%
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & server.mappath ("*****.mdb")
Set rs = Server.CreateObject("ADODB.Recordset")
Addera = "SELECT * FROM dagbok "
rs.Open Addera, Connect, 3, 3
if request.querystring("action")="spara" then
rs.addnew
rs("vems") = session("user")
rs("rubrik")=request.form("rubrik")
rs("text")=request.form("text")
rs("vemsid")=session("id")
rs("datum")=now
rs.update
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & server.mappath ("**********")
Set rs = Server.CreateObject("ADODB.Recordset")
Addera = "SELECT * FROM anv where id='"&session("id")&"'"
rs.Open Addera, Connect, 3, 3
rs("status") = rs("status") + poangdagbok
rs.update
response.redirect "dagbok.asp?id="&session("id")
end if
%>
<%End If%>
<%Set rs1 = Server.CreateObject("ADODB.Recordset")
Addera = "SELECT * FROM anv where id='"&session("id")&"'"
rs1.Open Addera, Connect, 3, 3%>
<p><div id="Layer7" style="position:absolute; width:756; height:21; z-index:4; left: 10; top: 25; background-image=url('bilder/ruta_bak.gif'); layer-background-color: #0066FF; border: 1px none #000000">
<table width="755" border="0" cellpadding="0" cellspacing="1" bgcolor="#000000">
<tr>
<td height="20" background="bilder/ruta_bak.gif" width="752">
<div align="left">
<b><font face="Verdana, Arial, Helvetica, sans-serif" size="2">Skriv i
Dagboken</font></b></div></td>
</tr>
</table>
</div><br>
<div id="Layer3" style="position:absolute; width:20; height:2; z-index:3; left: 167; top: 51">
<strong style="font-weight: 400">
<table width="599" border="0" cellpadding="0" cellspacing="1" bgcolor="#000000">
<tr>
<td bgcolor="f0f0f0" width="600">
<font face="Verdana, Arial, Helvetica, sans-serif" size="2">
<strong>
<%if rs1("blockaddagbok") = true then%>
<font face="Verdana, Arial, Helvetica, sans-serif" size="2">Du har blivit blockerad från att skriva i dagboken! Kontakta admin....
<%else%>
<form name="form1" method="post" action="dagbok_skapa.asp?action=spara" onSubmit="submitonce(this)">
Rubrik</strong><strong style="font-weight: 400"><br>
<input name="rubrik" type="text" size="60"> <br>
</strong>
<strong> Meddelande</strong><strong style="font-weight: 400"><br>
<textarea name="text" rows="7" cols="60" onkeyup="checkChars(this)"></textarea>
<br>
<br><br><br>
<html>
<input type="submit" onclick="kontrollera(document.form1.text.value);" name="Submit" value="Skicka">
</form></strong></font></p>
</form>
<%end if%>
</td>
</tr>
</table>
</div>
</p>
</body>
</html>
P Peter S Medlem sedan dec. 2002 5 483 inlägg Eftersom du använder dig av method="post" får du ändra:
If Len(Request.QueryString("text")) > 74 Then
till
If Len(Request.Form("text")) > 74 Then
:)
P Peter S Medlem sedan dec. 2002 5 483 inlägg Hmm, ta bort If-satsen som jag gav dig tidigare och gör så här istället: När formuläret har skickats till "dagbok_skapa.asp" kollar du på den sidan om antalet tecken är under 75. Typ:
Response.Buffer = True
If Len(Request.Form("text")) < 75 Then
Response.Redirect("error.asp")
End If
Om antalet tecken är mindre än 75 skickas besökaren till "error.asp" (där du kan tala om för denne att antalet tecken måste vara minst 75).
:)
D DiDjo Medlem sedan nov. 2002 544 inlägg Men det fungerar med denna:If Len(Request.Form("text")) > 74 Then