T tonyh Medlem sedan okt. 2002 107 inlägg Frågan 2 feb. 2004 13:37 #1 Hej,
Jag har ett formulär på en sida som är uppbyggd av flera DIV-taggar (nestlade).
Det gör så det inte går att posta formuläret på det vanliga "document.forms[0].submit();", har därför provat diverse andra sätt att posta formuläret på (detta efter att formuläret validerats i mitt JavaScript), på dessa sätt har jag försökt posta mitt formulär:
document.form[0].submit();
document.mittform.submit();
document.getElementById("mittform").submit();
document.divNr1.divNr14.div143.mittform.submit();
Inget av dessa verkar fungera - uppskattar alla förslag på hur jag skulle kunna få mitt formulär att postas av mitt JS!!!
Tack på förhand!!!
P Peter S Medlem sedan dec. 2002 5 483 inlägg Hej!
Klistra gärna in relevant HTML-kod också.
:)
T tonyh Medlem sedan okt. 2002 107 inlägg Det e en hel del kod men något fökortad version nedan...
<html>
<head>
<title>Test</title>
<link rel="stylesheet" type="text/css" href="css/style_basic.css">
<link rel="stylesheet" type="text/css" href="css/style_tavla.css">
<script language="javascript" src="includes/FormValidationInc.js"></script>
<script language="javascript">
<!--
function validatePostForm()
{
var ErrMsg;
ErrMsg = "";
ErrMsg += ValidateText("Firstname", "Förnamn", "", "", 1);
ErrMsg += ValidateText("Lastname", "Efternamn", "", "", 1);
ErrMsg += ValidateText("Address", "Adress", "", "", 1);
ErrMsg += ValidateText("AreaCode", "Postnummer", "", "", 1);
ErrMsg += ValidateText("Area", "Postadress", "", "", 1);
ErrMsg += ValidateText("Hospital", "Arbetsplats", "", "", 1);
ErrMsg += ValidateText("PhoneNo", "Telefon", "", "", 1);
ErrMsg += ValidateEmail("Email", "E-postadress", 1);
if (ErrMsg.length > 0)
{
alert(ErrMsg);
if(FocusField.length > 0){
eval(FocusField + ".focus();");
}
}
else
{
document.contest.submit();
}
FocusField = "";
}
//-->
</script>
</head>
<body>
//...och lite längre ner kommer...
<div id="borderpic" z-index="6">
<div id="form" z-index="50">
<table border="0" cellpadding="0" cellspacing="0" width="395">
<tr>
<td align="justify">Vad tycks
</td>
</tr>
</table>
<br>
<form method=post name=contest id=contest action="send.asp">
<table border="0" cellpadding="1" cellspacing="0" width="580">
<tr class="formcolor">
<td><h2>1. </td>
<td><input type="radio" name="Q1" value="1512"></td>
<td>1512 </td>
<td><input type="radio" name="Q1" value="1520"></td>
<td>1520 </td>
<td><input type="radio" name="Q1" value="1523"></td>
<td>1523</td>
</tr>
//...och därefter submit-knappen och lite slut taggar...
<table border="0" cellpadding="0" cellspacing="0" width="575">
<tr>
<td><input type="checkbox" name="MoreInfo" value="Ja" checked> Ja, jag vill
fortsätta få information från er </td>
<td align="right"><input OnClick="javascript:validatePostForm();" type="button" name="submit" value="Skicka tävlingsbidrag"></td>
</tr>
</table>
<input type="hidden" name="LanguageOBJID" value="{C283BC19-D5BD-11D4-8EB7-0000F659DADC}" ID="Hidden1">
</form>
</div>
</div>
...
P.S. FormValidationInc.js innehåller valideringsfunktionerna som används i funktionen validatePostForm.
P Peter S Medlem sedan dec. 2002 5 483 inlägg Felet ligger i att du döpt input elementet till "submit", vilket också är namnet på den metod som används för att skicka formuläret.
För att lösa problemet ger du givetvis elementet ett annat namn.
:)
T tonyh Medlem sedan okt. 2002 107 inlägg Tack Peter S...
...självklart är det så!!!
F..n vad man kan stirra sig blind på vissa problem!!!
Tack så jättemycket, ni är en klippa ;)
Ha det!!! :birp :bire