Trådstart 28 maj 2003 07:45 #1 Hej!
Jag har skrivit en kodsnutt som jag inte alls är nöjd med eftersom den säkerligen går att skriva mycket smartare. Mina kunskaper inom JavaScript är inte de bästa och hade varit glad om någon kunde hjälpa mig.
Skriptet är till för att man ska kunna skriva in en adress och kunna ange en annan/samma fakturaadress när man beställer. Det hela ska fungera så att man ska kunna klicka på en länk som säger "Kopiera adressen från fälten ovan".
Just nu ser koden ut som följer:
<script type="text/javascript">
function CopyMe(siffra, siffra2)
{
document.getElementById(siffra+'mail').value=document.getElementById(siffra2+'mail').value;
document.getElementById(siffra+'company').value=document.getElementById(siffra2+'company').value;
document.getElementById(siffra+'firstname').value=document.getElementById(siffra2+'firstname').value;
document.getElementById(siffra+'lastname').value=document.getElementById(siffra2+'lastname').value;
document.getElementById(siffra+'title').value=document.getElementById(siffra2+'title').value;
document.getElementById(siffra+'adress1').value=document.getElementById(siffra2+'adress1').value;
document.getElementById(siffra+'adress2').value=document.getElementById(siffra2+'adress2').value;
document.getElementById(siffra+'city').value=document.getElementById(siffra2+'city').value;
document.getElementById(siffra+'zip').value=document.getElementById(siffra2+'zip').value;
document.getElementById(siffra+'phone').value=document.getElementById(siffra2+'phone').value;
document.getElementById(siffra+'fax').value=document.getElementById(siffra2+'fax').value;
document.getElementById(siffra+'country').value=document.getElementById(siffra2+'country').value;
}
</script>
<FORM METHOD="post" ACTION="adress.asp" NAME="info">
<TABLE BORDER="0" CELLSPACING="2" CELLPADDING="0" WIDTH="485">
<TR><TD COLSPAN="2"><B>Leveransadress</B></TD></TR>
<TR><TD>E-postadress:</TD><TD><input type="text" name="1mail" ID="1mail"></TD></TR>
<TR><TD>Företag:</TD><TD><input type="text" name="1company"></TD></TR>
<TR><TD>Förnamn:</TD><TD><input type="text" name="1firstname"></TD></TR>
<TR><TD>Efternamn:</TD><TD><input type="text" name="1lastname"></TD></TR>
<TR><TD>Titel:</TD><TD><input type="text" name="1title"></TD></TR>
<TR><TD>Adress1:</TD><TD><input type="text" name="1adress1"></TD></TR>
<TR><TD>Adress2:</TD><TD><input type="text" name="1adress2"></TD></TR>
<TR><TD>Ort:</TD><TD><input type="text" name="1city"></TD></TR>
<TR><TD>Postnr:</TD><TD><input type="text" name="1zip"></TD></TR>
<TR><TD>Tele:</TD><TD><input type="text" name="1phone"></TD></TR>
<TR><TD>Fax:</TD><TD><input type="text" name="1fax"></TD></TR>
<TR><TD>Land:</TD><TD><input type="text" name="1country"></TD></TR>
</TABLE>
<TABLE BORDER="0" CELLSPACING="2" CELLPADDING="0" WIDTH="485">
<TR><TD COLSPAN="2"><B>Fakturaadress</B><a href="#" onclick="CopyMe(2,1)";>Samma som ovan</a></TD></TR>
<TR><TD>E-postadress:</TD><TD><input type="text" name="2mail" ID="2mail"></TD></TR>
<TR><TD>Företag:</TD><TD><input type="text" name="2company"></TD></TR>
<TR><TD>Förnamn:</TD><TD><input type="text" name="2firstname"></TD></TR>
<TR><TD>Efternamn:</TD><TD><input type="text" name="2lastname"></TD></TR>
<TR><TD>Titel:</TD><TD><input type="text" name="2title"></TD></TR>
<TR><TD>Adress1:</TD><TD><input type="text" name="2adress1"></TD></TR>
<TR><TD>Adress2:</TD><TD><input type="text" name="2adress2"></TD></TR>
<TR><TD>Ort:</TD><TD><input type="text" name="2city"></TD></TR>
<TR><TD>Postnr:</TD><TD><input type="text" name="2zip"></TD></TR>
<TR><TD>Tele:</TD><TD><input type="text" name="2phone"></TD></TR>
<TR><TD>Fax:</TD><TD><input type="text" name="2fax"></TD></TR>
<TR><TD>Land:</TD><TD><input type="text" name="2country"></TD></TR>
</TABLE>
<INPUT TYPE="submit" VALUE="skicka">
</FORM>
Skulle även vilja att man skulle kunna använda (oändligt?!?) med formulär som man kan kopiera ovanstående formulärsinformation till. Så att man slipper vara bunden till just 2 stycken exempelvis.
Om jag uttrycker mig luddigt så får ni gärna säga till.
dectgap Medlem sedan sep. 2002 1 655 inlägg Det jag skulle kunna tänka mig att ändra är följande:
<script type="text/javascript">
function CopyMe(fromForm, toForm, fromSiffra, toSiffra)
{
var fields = new Array('mail', 'company', 'firstname', 'lastname', 'title', 'adress1', 'adress2', 'city', 'zip', 'phone', 'fax', 'country');
i = fields.length;
while(i-->0){
toForm.elements[toSiffra+fields[i]].value=fromForm.elements[fromSiffra+fields[i]].value;
}
}
</script>
<FORM METHOD="post" ACTION="adress.asp" NAME="info">
<TABLE BORDER="0" CELLSPACING="2" CELLPADDING="0" WIDTH="485">
<TR><TD COLSPAN="2"><B>Leveransadress</B></TD></TR>
<TR><TD>E-postadress:</TD><TD><input type="text" name="1mail" ID="1mail"></TD></TR>
<TR><TD>Företag:</TD><TD><input type="text" name="1company"></TD></TR>
<TR><TD>Förnamn:</TD><TD><input type="text" name="1firstname"></TD></TR>
<TR><TD>Efternamn:</TD><TD><input type="text" name="1lastname"></TD></TR>
<TR><TD>Titel:</TD><TD><input type="text" name="1title"></TD></TR>
<TR><TD>Adress1:</TD><TD><input type="text" name="1adress1"></TD></TR>
<TR><TD>Adress2:</TD><TD><input type="text" name="1adress2"></TD></TR>
<TR><TD>Ort:</TD><TD><input type="text" name="1city"></TD></TR>
<TR><TD>Postnr:</TD><TD><input type="text" name="1zip"></TD></TR>
<TR><TD>Tele:</TD><TD><input type="text" name="1phone"></TD></TR>
<TR><TD>Fax:</TD><TD><input type="text" name="1fax"></TD></TR>
<TR><TD>Land:</TD><TD><input type="text" name="1country"></TD></TR>
</TABLE>
<TABLE BORDER="0" CELLSPACING="2" CELLPADDING="0" WIDTH="485">
<TR><TD COLSPAN="2"><B>Fakturaadress</B><a href="#" onclick="CopyMe(document.forms['info'], document.forms['info'],1,2)";>Samma som ovan</a></TD></TR>
<TR><TD>E-postadress:</TD><TD><input type="text" name="2mail" ID="2mail"></TD></TR>
<TR><TD>Företag:</TD><TD><input type="text" name="2company"></TD></TR>
<TR><TD>Förnamn:</TD><TD><input type="text" name="2firstname"></TD></TR>
<TR><TD>Efternamn:</TD><TD><input type="text" name="2lastname"></TD></TR>
<TR><TD>Titel:</TD><TD><input type="text" name="2title"></TD></TR>
<TR><TD>Adress1:</TD><TD><input type="text" name="2adress1"></TD></TR>
<TR><TD>Adress2:</TD><TD><input type="text" name="2adress2"></TD></TR>
<TR><TD>Ort:</TD><TD><input type="text" name="2city"></TD></TR>
<TR><TD>Postnr:</TD><TD><input type="text" name="2zip"></TD></TR>
<TR><TD>Tele:</TD><TD><input type="text" name="2phone"></TD></TR>
<TR><TD>Fax:</TD><TD><input type="text" name="2fax"></TD></TR>
<TR><TD>Land:</TD><TD><input type="text" name="2country"></TD></TR>
</TABLE>
<INPUT TYPE="submit" VALUE="skicka">
</FORM>
Lägger du till fler fält får du lägga till dem i arrayn fields, och vill du ändra andra formulär ändrar du bara det i funktionsanropet, t.ex. CopyMe(document.forms['info'], document.forms['ett_annat_formulärsnamn'], 1,1);