Har följande kod: Felet beror på att du inte får lov att radbryta en strängkonstant i javascript. Du kan lösa det med följande funktion: Löste det med följande: Testa att fylla i & tecken i txtNamn eller txtTelefon. Det bör oxå formateras med Server.URLEncode().Mail-problem
<code>
<button onclick="location.href='mailto:aa@bb.se?subject=Förfrågan&body=%0dText: <%=request.form("txtText")%>0dNamn: <%=request.form("txtNamn")%>%0dTelefon: <%=request.form("txtTelefon")%>'">Klicka här för att förhandsgranska din förfrågan</button>
</code>
txtText är en TextArea och de två andra är vanliga textrutor.
Skriver man bara en rad i TextArean funkar allt perfekt, men om man skriver fler rader
tex:
Hej
du
Då fungerar inte knappen.
Vad göra?Sv: Mail-problem
<code>
Public Function Escape(Value)
Dim Char
Dim Index
Dim Length
Dim Offset
Dim Buffer
Length = Len(Value)
Buffer = Value & Space(Length)
For Index = 1 To Len(Value)
Char = Mid(Value, Index, 1)
Select Case Asc(Char)
Case &H27 'single quote '
Mid(Buffer, Index + Offset, 2) = "\'"
Offset = Offset + 1
Case &H22 'double quote "
Mid(Buffer, Index + Offset, 2) = "\"""
Offset = Offset + 1
Case &H8 'backspace <BS>
Mid(Buffer, Index + Offset, 2) = "\b"
Offset = Offset + 1
Case &H5C 'backslash Mid(Buffer, Index + Offset, 2) = "\\"
Offset = Offset + 1
Case &H9 'horizontal tab <HT>
Mid(Buffer, Index + Offset, 2) = "\t"
Offset = Offset + 1
Case &HA 'line feed (new line) <LF>
Mid(Buffer, Index + Offset, 2) = "\n"
Offset = Offset + 1
Case &HB 'vertical tab <VT>
Mid(Buffer, Index + Offset, 2) = "\v"
Offset = Offset + 1
Case &HC 'form feed <FF>
Mid(Buffer, Index + Offset, 2) = "\f"
Offset = Offset + 1
Case &HD 'carriage return <CR>
Mid(Buffer, Index + Offset, 2) = "\r"
Offset = Offset + 1
Case Else
If Offset Then
Mid(Buffer, Index + Offset, 2) = Char
End If
End Select
Next
Escape = Left(Buffer, Length + Offset)
End Function
</code>
Du tillämpar det så här:
<code>
<%
Dim strURL
Dim strBody
strBody = "Text: " & Request.Form("txtText") & vbCr & _
"Namn: " & Request.Form("txtNamn") & vbCr & _
"Telefon: " & Request.Form("txtTelefon") & vbCr
'Kodar om body parametern i querystringen
'Den kan annars brytas av vid t.ex. &-tecken
strBody = Server.URLEncode(strBody)
'Skapar url
strURL = "mailto:aa@bb.se?subject=Förfrågan&body=" & strBody
'Kodar om strängen för javascript
strURL = Escape(strURL )
Response.Write "<button onclick=""location.href='<%=strURL%>';">Klicka här för att förhandsgranska din förfrågan</button>
%>
</code>
Varför inte använda HTML istället för javascript?
Input.html
<code>
<HTML>
<HEAD>
<TITLE>Fyll i information</TITLE>
</HEAD>
<BODY>
<FORM method="POST" action="Mail.asp" >
<LABEL for="txtText">Text:<BR>
<TEXTAREA name="txtText"></TEXTAREA>
</LABEL><BR>
<LABEL for="txtNamn">Namn:<BR>
<INPUT type="text" name="txtNamn">
</LABEL><BR>
<LABEL for="txtTelefon">Telefon:<BR>
<INPUT type="text" name="txtTelefon">
</LABEL><BR>
<INPUT type="submit" value="Nästa">
</FORM>
</BODY>
</HTML>
</code>
Mail.asp
<code>
<%
Option Explicit
Dim strBody
strBody = "Text: " & Request.Form("txtText") & vbCr & _
"Namn: " & Request.Form("txtNamn") & vbCr & _
"Telefon: " & Request.Form("txtTelefon") & vbCr
strBody = Server.HTMLEncode(strBody)
strBody = Replace(strBody, " ", " ")
%>
<HTML>
<HEAD>
<TITLE>Fyll i information</TITLE>
</HEAD>
<BODY>
<FORM method="GET" action="mailto:aa@bb.se">
<INPUT type="hidden" name="subject" value="Förfrågan">
<INPUT type="hidden" name="body" value="<%=strBody%>">
<INPUT type="submit" value="Klicka här för att förhandsgranska din förfrågan">
</FORM>
</BODY>
</HTML>
</code>Sv: Mail-problem
<code>
<button onclick="location.href='mailto:aa@bb.se?subject=Förfrågan&body=%0dText: <%=server.urlencode(request.form("txtText"))%>%0dNamn: <%=request.form("txtNamn")%>%0dTelefon: <%=request.form("txtTelefon")%>'">Klicka här för att förhandsgranska din förfrågan</button>
</code>
Allt som behövdes var: server.urlencode(request.form("txtText"))Sv: Mail-problem
Varför använder du JavaScript och inte html? Det kommer göra funktionaliteten otilgänglig för alla. Om man saknar stöd JavaScript eller om man har en popup-stopper.
<code>
<FORM method="GET" action="mailto:aa@bb.se?subject=<%=Server.URLEncode(strSubject)%>&body=<%=Replace(Server.URLEncode(strBody), "+", "%20")%>">
<INPUT type="submit" value="Klicka här för att förhandsgranska din förfrågan">
</FORM>
</code>