Hej!
Sitter med ett litet problem som jag inte fattar vad jag gör för fel på. Är säkert något skitfel som jag har gjort. Problemet är detta:
Jag har ett formulär som jag postar till en funktion som kollar mejlet och sedan postar det. Nu vill jag ta ett av dom ifyllda värdena och kopiera detta till ett hidden-fält jag har i mitt formulär innan det postas. Jag har provat att lägga in följande i kontrollfunktionen innan den returnerar:
function isMailReady(form) {
var passed = false;
.
.
.
form.namn.value = form.realname.value; // här tilldelar jag hidden-fältet värdet
return passed;
}
Om jag provar att skriva ut form.namn.value med alert() så får jag rätt värde men när det postas så följer inte värdet med utan blir en tom sträng bara. Så här ser de två "drabbade" fälten ut:
Som sagt, det är svårt att peka på någonting specifikt när du inte visar all relevant kod. Formulärkoden och isMailReady()-funktionen i sin helhet kanske kan hjälpa.
Kanske stör lite att en input har samma name= som den andra har id=?
Alltså att webbläsaren tolkar form.name och form.realname som samma kontroll eftersom id= har högre prioritet än name=.
Ja, man kan ju tycka det. Ändrade på namnen men det funkar fortfarande inte. Provade att sätta ett value på hidden-fältet och det följde iaf med oförändrat till mottagarsidan. Här kommer hela kontroll funktionen:
<SCRIPT LANGUAGE="JavaScript">
function fixElement(element, message) {
alert(message);
element.focus();
}
function isMailReady(form) {
var passed = false;
if (form.Kundnummer.value == "") {
fixElement(form.Kundnummer, "Kundnummer ej ifyllt.");
}
else if (form.email.value.indexOf("@") == -1 ||
form.email.value.indexOf(".") == -1) {
fixElement(form.email, "E-postadress ej ifylld / ej korrekt. Var god kontrollera!");
}
else if (form.Referens.value == "") {
fixElement(form.Referens, "Referensperson ej ifylld.");
}
else {
passed = true;
}
form.namn.value = form.realname.value;
return passed;
}
</SCRIPT>
och hur fälten ser ut nu:
<td colspan="2" bgcolor="#0079bf"><input name="realname" type="text" id="realname" tabindex="2" size="30">
<!-- Detta är det gömda fält som skall få samma värde som fältet ovan "realname" -->
<input type="hidden" name="namn" id="namn" value="test">
Formuläret skickar jag till en php-sida där jag bara kör var_dump() på POST-datan. Fattar inte varför det inte funkar.........*suck*
Peter menar nog att du har gjort något fel i koden som inte direkt syns. Här har han skrivit en kod som fungerar, som du kan använda och lite grann börja om från scratch.