Måste tillägga att jag har ställt dessa fält på obligatoriska i databasen så som det är nu, så det kommer nått fel om man inte har fyllt i dom. Vill alltså fixa ett eget felmeddelande.
------------------
/CrYpToNiC
7 svar · 522 visningar · startad av CrYpToNiC
Hur gör jag så att vissa fält i ett formulär blir obligatoriska ?
Jag har en gästbok där jag vill att namn och meddelande ska vara obligatoriska. Sedan om man inte har fyllt i dessa fält så ska man komma tillbaka till samma sida fast det står röd text där det står typ "Du har glömt att fylla i *nått*"
Har gästboken i en access 2000 databas.
------------------
/CrYpToNiC
Måste tillägga att jag har ställt dessa fält på obligatoriska i databasen så som det är nu, så det kommer nått fel om man inte har fyllt i dom. Vill alltså fixa ett eget felmeddelande.
------------------
/CrYpToNiC
du kan ju alltid kolla längden på dina obligatoriska fält.. exempelvis.
If len(request.form("woo")) <= 0 Then
response.write "Du skrev för lite.."
End If
------------------
Mvh
Patrik aka Brimba
Hur hittar pillret fram till det onda?
Eller så kan du lägga in lite javascript som kollar det direkt på sidan typ såhär:
<SCRIPT LANGUAGE="JavaScript">
var fieldnames = new Array (2)
fieldnames[0] = "Namn"
fieldnames[1] = "Meddelande"
function validation(form) {
var onoff=0
var alertboxnames = ""
var fields = new Array (2)
fields[0] = form.NAME.value.length
fields[1] = form.MESSAGE.value.length
for (var i=0; i < fields.length; i++) {
if (fields[i] == 0) {
alertboxnames = alertboxnames + fieldnames[i] + ", ";
onoff ++;
}
}
if (onoff == 0) {
return true
} else {
if (onoff == 1) {
var catness = alertboxnames.substring (0, alertboxnames.indexOf(","));
alert ("Följande fält krävs: \r \r" + catness + "\r \rFyll i fältet och försök igen!");
} else {
var catness = alertboxnames.substring (0, alertboxnames.length-2)
alert ("Följande fält krävs: \r \r" + catness + "\r \rFyll i fälten och försök igen!");
}
return false
}
}
</SCRIPT>
Och i form taggen:
<form method="POST" action="default.asp" onSubmit="return validation(this)">
Dock är Brimbas metod säkrare om användaren har javascript avaktiverat.
Red: Du får byta ut NAME och MESSAGE mot vad fälten heter i ditt formulär.
------------------
MvH
/Bengan
www.bengan.com
"Your mouse has moved. Windows will now restart to accept the changes."
[Redigerat av Bengan den 14 dec 2000]
Hmm, jag lyckas inte. Så här ser koden ut:
process.asp:
<%If len(request.form("namn")) >= 1 Then
If len(request.form("meddelande")) >= 1 Then
Set Connect = Server.CreateObject("ADODB.Connection")
dbPath = Server.MapPath("../database/gbook.mdb")
dbPass = "*hemligt*"
Connect.open "driver={Microsoft Access Driver (*.mdb)};dbq=" & dbPath & ";uid=;pwd=" & dbPass & ";"
Set RecSet = Server.CreateObject("ADODB.Recordset")
Addera = "SELECT * FROM gbook"
RecSet.open Addera, Connect, adOpenStatic, adLockOptimistic
RecSet.addnew
RecSet("namn") = Request.Form("namn")
RecSet("email") = Request.Form("email")
RecSet("icq") = Request.Form("icq")
RecSet("hemsida") = Request.Form("hemsida")
RecSet("datum") = Request.Form("datum")
RecSet("ip") = Request.Form("ip")
RecSet("meddelande") = Request.Form("meddelande")
RecSet.update
Recset.close
Connect.close
response.redirect "lgb.asp"
else
%>
<!--#include file="shell-top.txt" -->
<!--#include file="meny.txt" -->
<!--#include file="shell-mid.txt" -->
<!-- #Include file="../adovbs.inc" -->
<img src="../bilder/sgb.gif">
<form method="post" action="process.asp">
<span class="text">Fyll i alla fält. Dom rödmarkerade är obligatoriska.</span><br>
<%If len(request.form("namn")) <= 0 Then
response.write "<span class=redtext>Du har glömt fylla i ditt namn</span><br>"
End If%>
<%If len(request.form("meddelande")) <= 0 Then
response.write "<span class=redtext>Du har glömt fylla i ett meddelande</span><br>"
End If%>
<br>
<table width="347" border="0" cellspacing="0" cellpadding="0">
<tr>
<td class="redtext" width="81" valign="middle">Namn:</td>
<td width="372">
<input type="text" size="70" name="namn" value="<%=Request.Form("namn")%>">
</td>
</tr>
<tr>
<td class="text" width="81" valign="middle">E-mail:</td>
<td width="372">
<input type="text" size="70" name="email" value="<%=Request.Form("email")%>">
</td>
</tr>
<tr>
<td class="text" width="81" valign="middle" height="6">ICQ #:</td>
<td width="372" height="6">
<input type="text" size="70" name="icq" value="<%=Request.Form("icq")%>">
</td>
</tr>
<tr>
<td class="text" width="81" valign="middle" height="6">Hemsida:</td>
<td width="372" height="6">
<input type="text" size="70" name="hemsida" value="<%=Request.Form("hemsida")%>">
</td>
</tr>
<tr>
<td class="redtext" width="81" valign="top" height="114">Meddelande:</td>
<td width="372" height="114">
<textarea cols="55" name="meddelande" rows="7" wrap="VIRTUAL"><%=Request.Form("meddelande")%></textarea>
</td>
</tr>
<tr>
<td>
<input type="hidden" name="datum" value="<%=Time%>, <%=Date%>">
<input type="hidden" name="ip" value="<%=request.servervariables("REMOTE_ADDR")%>">
<input type="submit" value="Klar" name="submit">
</td
></tr>
</table>
</form>
<!--#include file="shell-bottom.txt" -->
<%
End If
End If
%>
Borde inte detta funka?
------------------
/CrYpToNiC
Om jag skriver nått på namn och inget på dom andra, så står det mycket riktigt att man har glömt att skriva ett meddelande, som är ett krav.
Men om man däremot skriver nått på meddelande och inget på dom andra så kommer jag till en tom sida. Samma händer om jag inte skriver nått alls på alla fält.
------------------
/CrYpToNiC