K kbking Medlem sedan mars 2003 168 inlägg Frågan 12 nov. 2003 09:20 #1 Hej!
Jag har ett formulär med ett antal textfält och en dropdown meny, som har valen Sverige,
Norge, Danmark, Finland, Åland och Island. Med koden nertill skickas det iväg:
<form action="http://domain.com/cgi-bin/blankett-sv.cgi" method="post" name="blankett" id="blankett" onsubmit="return CheckForm(this)" >
Alltså används blankett-sv.cgi för alla länderna. Det jag undrar är
om det går att styra så att blankett-no.cgi används för Norge,
blankett-dk.cgi för Danmark osv
<script>
//document.oncontextmenu=function(){return false;};
function CheckForm(th){
/* Din kod... */
th.action = "http://domain.com/cgi-bin/blankett-" + th.elements["land"].value + ".cgi";
}
</script>
<form action="http://domain.com/cgi-bin/blankett-sv.cgi" onsubmit="return CheckForm(this)">
<input type="submit">
<select name="land">
<option value="sv">Sverige</option>
<option value="no">Norge</option>
<option value="fi">Finland</option>
<!-- osv -->
</select>
</form>
K kbking Medlem sedan mars 2003 168 inlägg Jag får inte rätt på det. Det är blankett-sv.cgi som skickas hela tiden. Jag postar därför de tre delar kod som jag använder
och som jag vill ha in denna finess i.
Om något fält inte fylls i eller lämnas ofullständigt ifyllt kommer det upp en alert härifrån:
<script language="JavaScript" type="text/javascript">
<!--
function CheckForm( theform )
{
var bMissingFields = false;
var strFields = "";
if( theform.b_first.value.length < 2 ){
bMissingFields = true;
strFields += " * Kontaktdetaljer: Förnamn\n";
}
if( theform.b_last.value.length < 2 ){
bMissingFields = true;
strFields += " * Kontaktdetaljer: Efternamn\n";
}
if( theform.b_phone.value.length < 10 ){
bMissingFields = true;
strFields += " * Kontaktdetaljer: Telefon\n";
}
if( theform.b_email.value.search("@") == -1 || theform.b_email.value.search("[.*]") == -1 ){
bMissingFields = true;
strFields += " * Kontaktdetaljer: Email\n";
}
if( theform.b_addr.value == '' ){
bMissingFields = true;
strFields += " * Adress: Gatuadress\n";
}
if( theform.b_zip.value.length != 6 ){ bMissingFields = true;
strFields += " * Adress: Postnr\n";
}
if( theform.b_city.value.length < 3 ){
bMissingFields = true;
strFields += " * Adress: Ort\n";
}
if( theform.b_country.value.length == '' ){
bMissingFields = true;
strFields += " * Adress: Land\n";
}
if( bMissingFields ) {
alert( "Innan du kan fortsätta måste du fylla i följande fält:\n\n" + strFields +"\nVänligen fyll i alla fält korrekt i formuläret och\nklicka sedan på Skicka knappen." );
return false;
}
return true;
}
if (self != top) top.location.replace(self.location);
Det skickas som sagt med denna kod:
<form action="http://domain.com/cgi-bin/blankett-sv.cgi" method="post" name="blankett" id="blankett" onsubmit="return CheckForm(this)" >
Dropdown menyn ser ut så här:
<select name="b_country" id="b_country" class="impbox">
<option selected="selected">Land</option>
<option value="sv">Sverige</option>
<option value="no">Norge</option>
<option value="dk">Danmark</option>
<option value="fi">Finland</option>
<option value="al">Åland</option>
<option value="is">Island</option>
</select>
Det är alltså i dessa tre delar befintlig kod som jag vill ha in möjligheten att skicka olika språkversioner.
J Jojoxx Medlem sedan juni 2000 4 308 inlägg Du har glömt den viktiga biten från nitro2k01's exempel.
function CheckForm( theform )
{
var bMissingFields = false;
var strFields = "";
if( theform.b_first.value.length < 2 ){
bMissingFields = true;
strFields += " * Kontaktdetaljer: Förnamn\n";
}
if( theform.b_last.value.length < 2 ){
bMissingFields = true;
strFields += " * Kontaktdetaljer: Efternamn\n";
}
if( theform.b_phone.value.length < 10 ){
bMissingFields = true;
strFields += " * Kontaktdetaljer: Telefon\n";
}
if( theform.b_email.value.search("@") == -1 || theform.b_email.value.search("[.*]") == -1 ){
bMissingFields = true;
strFields += " * Kontaktdetaljer: Email\n";
}
if( theform.b_addr.value == '' ){
bMissingFields = true;
strFields += " * Adress: Gatuadress\n";
}
if( theform.b_zip.value.length != 6 ){ bMissingFields = true;
strFields += " * Adress: Postnr\n";
}
if( theform.b_city.value.length < 3 ){
bMissingFields = true;
strFields += " * Adress: Ort\n";
}
if( theform.b_country.selectedIndex==0 ){
bMissingFields = true;
strFields += " * Adress: Land\n";
}
if( bMissingFields ) {
alert( "Innan du kan fortsätta måste du fylla i följande fält:\n\n" + strFields +"\nVänligen fyll i alla fält korrekt i formuläret och\nklicka sedan på Skicka knappen." );
return false;
}
theform.action="http://domain.com/cgi-bin/blankett-"+theform.b_country[theform.b_country.selectedIndex].value+".cgi";
return true;
}