webForumDet fria alternativet

byta till html-kod i ett formulär

8 svar · 342 visningar · startad av costodia

costodiaMedlem sedan aug. 2000864 inlägg
#1

Jag har ett forumlär som nästan ser ut såhär:

<form method="post" action="http://www.niklasson.net/form/mail.php">
<input type="hidden" name="id" value="9999">
<input type="text" name="epost" size="25">
<input type="submit" value="Skicka">
</form>

Det jag vill ha är ett javascript som ändrar så att när användaren trycker på "Skicka" så blir det istället

<a href="mailto:epost">epost</a>

epost är alltså formulärvärdet.

Peter SMedlem sedan dec. 20025 483 inlägg
#2
<script type="text/javascript">

function f(obj){
    var elms = obj.childNodes,
	iLen = elms.length,
	a    = document.createElement("a"),
	val  = obj.elements["epost"].value;

    // Kontrollera e-postadressen här

    a.href = "mailto:" + val;
    a.innerHTML = val;

    while (iLen--)
	if (elms[iLen].name && elms[iLen].name == "submit"){
	    obj.replaceChild(a, elms[iLen]);
	    break;
	}

    return false;
}

</script>

<form [b]onsubmit="return f(this)"[/b]...

<input type="submit" [b]name="submit"[/b]...

:)

costodiaMedlem sedan aug. 2000864 inlägg
#3

jag har lagt upp koden som du skrev den, på
http://www.sveriges.com/mailisar/formular_niklasson_1.asp

men nu händer det ingenting när man trycker på submitknappen

kan det ha med att göra att

 onsubmit="return f(this)"

inte finns definierat någon annanstans, eller behövs inte det?

Jag är helt novis på javascript, och kommer från asp-världen där det känns som allt måste definieras...

Peter SMedlem sedan dec. 20025 483 inlägg
#4

Det beror på att jag utgick från ditt formulärexempel i första inlägget, vilket jag ej borde ha gjort eftersom du skrev "nästan" ;)

function f(obj){
    var elms = obj.getElementsByTagName("input"),
	i    = 0,
	a    = document.createElement("a"),
	val  = obj.elements["epost"].value,
	elm;

    // Kontrollera e-postadressen här

    a.href = "mailto:" + val;
    a.innerHTML = val;

    while (elm = elms.item(i++))
	if (elm.name == "submit"){
	    elm.parentNode.replaceChild(a, elm);
	    break;
	}

    return false;
}

:)

costodiaMedlem sedan aug. 2000864 inlägg
#5

tack,
fast nu blev det inte riktigt som jag tänkt mig, även fast det var ett riktigt häftigt skript.

såhär blev det

men jag ville att det skulle genreras en htmlkod i rutan och sen skulle den skickas vidare till skriptet som ligger på niklasson.net, som i sin tur skickar att mail till mig,
och i det mailen vill jag ha html-generead kod så att jag snabbt kan klistra in mailet på min brevvänsida, men html:en klar.

Peter SMedlem sedan dec. 20025 483 inlägg
#6

Skall HTML-koden hamna i rutan "Meddelande", efter själva meddelandet?

:)

costodiaMedlem sedan aug. 2000864 inlägg
#7

ja, precis så att värdet i "epost" blir

<a href="mailto:martin3@home.se">martin3@home.se</a>
Peter SMedlem sedan dec. 20025 483 inlägg
#8

Kan detta vara rätt?

<form onsubmit="var ep=this.elements['epost'];ep.value='<a href=&#092;'mailto:'+ ep.value +'&#092;'>'+ ep.value +'</a>'" method="post" action="http://www.niklasson.net/form/mail.php">

:)

costodiaMedlem sedan aug. 2000864 inlägg
#9

helt perfekt!

136 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
133 ms — hämta tråd, inlägg och bilagor (db)