hakan@4u2.seMedlem sedan aug. 2000334 inlägg
Har gjort ett epost formulär där man skriver in sin epost adress, problemet är att "epost" värdet man skriver in inte följer med till http://www.test/test.asp, var är det som saknas? Javascript är inte min starka sida ;)
<script type="text/javascript">
function newsletterForm()
{
var form_action = document.forms[0].action;
var form_target = document.forms[0].target;
document.forms[0].action = "http://www.test/test.asp";
document.forms[0].target = "_blank";
document.forms[0].submit();
document.forms[0].action = form_action;
document.forms[0].target = form_target;
}</script>
<form action="" method="post">
<input type="Text" name="epost" value="Din e-postadress">
<input type="submit" value="Ja tack" onclick="newsletterForm(); return false;">
</form>
spangoMedlem sedan juni 20006 147 inlägg
Inte så konstigt att det inte funkar, det tar ju bort action från formuläret innan det submittar. Skippa scriptet helt och hållet, du behöver det inte:
<form action="http://www.test/test.asp" method="post" target="_blank">
<input type="Text" name="epost" value="Din e-postadress">
<input type="submit" value="Ja tack">
</form>
hakan@4u2.seMedlem sedan aug. 2000334 inlägg
Så kan man göra, men jag måste använda javascript formulär där jag ska använda det annars går det inte. Går det att få till?
nitro2k01Medlem sedan aug. 20037 630 inlägg
<script type="text/javascript">
function newsletterForm()
{
var form_action = document.forms[0].action;
var form_target = document.forms[0].target;
document.forms[0].action = "http://www.test/test.asp";
document.forms[0].target = "_blank";
document.forms[0].submit();
setTimeout(function(){
document.forms[0].action = form_action;
document.forms[0].target = form_target;
},200);
}</script>
<form action="" method="post">
<input type="Text" name="epost" value="Din e-postadress">
<input type="submit" value="Ja tack" onclick="newsletterForm(); return false;">
</form>
Så där kan man göra. Eller så kan man skapa ett helt nytt formulär via DOM.
<script type="text/javascript">
function newsletterForm()
{
var newForm = document.createElement("FORM")
document.body.appendChild(newForm);
var newInputElem = document.createElement("INPUT");
newInputElem.type = "hidden";
newInputElem.name = "epost";
newInputElem.value = document.forms[0].epost.value;
newForm.appendChild(newInputElem);
newForm.action = "http://www.test/test.asp";
newForm.target = "_blank";
newForm.submit();
}</script>
<form action="" method="post">
<input type="Text" name="epost" value="Din e-postadress">
<input type="submit" value="Ja tack" onclick="newsletterForm(); return false;">
</form>
Fritt ur minnet, kan innehålla buggar/fel. Ännu bättre vore det förstås om du lärde dig använda AJAX.
spangoMedlem sedan juni 20006 147 inlägg
hakan@4u2.se skrev:
jag måste använda javascript formulär där jag ska använda det annars går det inte
Varför då?
hakan@4u2.seMedlem sedan aug. 2000334 inlägg
Tusen Tack, den översta fungerar utmärkt!
Anledningen till att jag måste ha det så här, är att webbsajten där jag ska lägga upp formuläret krävet att man använder externt Javascript, vet inte exakt varför, men annars var de tvunga att ändra en massa på sin sida sa de. CMS verktyg kanske är en orsak! Att fixa det hamnade hos mig fast jag normalt sätt inte programmerar i Javascript.