Avatar billede kim.lundsteen Nybegynder
07. juli 2008 - 14:52 Der er 2 kommentarer og
1 løsning

Webform - select mulitple - Indhold af variablen sat i Mulitple ?

Hey Forum.

Jeg sidder og prøver at lave en webform ved hjælp af select multiple, og behøver lige lidt hjælp.

i min form har jeg 3 predefinerede lister, hvoraf den ene er defineret som multiple.

Ved valg af flere lande, forventede jeg at kunne parse variablen Country videre, og at denne indeholdt eks. Danmark sverige norge.

Men, når jeg kigge i country indeholder den kun en værdi. Hvad gør jeg galt ?

-------------------------------------------------
<script type="text/javascript">
function update(sel) {
  var e = sel.form.elements;
  for(i=0;i<e.length;i++){
    if(e[i].type=='text'&&e[i].name.indexOf('input')==0)
      e[i].value = sel.value;
    else if(e[i].type.indexOf('select')==0&&e[i].name.indexOf('selInput')==0){
      for(j=0;j<e[i].length;j++){
        if(e[i].options[j].value == sel.value){
          e[i].options[j].selected = true;
          break;
        }
      }
    }
  }
}
</script>
<script type="text/javascript">
function updateAntal(ctlName) {
  var inputs = document.getElementsByTagName('INPUT');
  var selValue = document.getElementById('selectAntal').value;
  for(var i = 0; i < inputs.length; i++)
    if(inputs[i].id == ctlName)
      inputs[i].value = selValue;
}

function updatebørn(ctlName) {
  var inputs = document.getElementsByTagName('INPUT');
  var selValue = document.getElementById('selectbørn').value;
  for(var i = 0; i < inputs.length; i++)
    if(inputs[i].id == ctlName)
      inputs[i].value = selValue;
}

function updatecountry(ctlName) {
  var inputs = document.getElementsByTagName('INPUT');
  var selValue = document.getElementById('selectcountry').value;
  for(var i = 0; i < inputs.length; i++)
    if(inputs[i].id == ctlName)
      inputs[i].value = selValue;
}
</script>
<form>
    input:<br>
  country  <select multiple id="selectcountry" onchange="updatecountry('inputcountry');" size="3">
    <option value='Danmark' >Danmark  </option>
    <option value='Sverige' >Sverige  </option>
    <option value='Norge'  >Norge    </option>
    <option value='Finland' >Finland  </option>
    <option value='Grønland'>Grønland </option>
    <option value='Island'  >Islands  </option>
</select> 

<br><br><br>
  børn <select id="selectbørn" onchange="updatebørn('inputbørn');">
    <option value="sød">sød</option>
    <option value="uatig">uatig</option>
  </select> 


<br><br><br>
  antal    <select id="selectAntal" onchange="updateAntal('inputAntal');">
    <option value="1">1</option>
    <option value="2">2</option>
    <option value="3">3</option>
    <option value="4">4</option>
    <option value="5">5</option>
    <option value="6">6</option>
</select>
    Resultat:<br>

<br>
  country <input readonly type="text" id="inputcountry" name="country" size=50 value=" - "><br>
  antal <input readonly type="text" id="inputAntal" name="Antal" size=4 value=" - "><br>
  børn <input readonly type="text" id="inputbørn" name="børn"  size=30 value=" - "><br>
</form>
----------------------
Avatar billede kim.lundsteen Nybegynder
07. juli 2008 - 15:55 #1
Fik desværre kopieret 2 javascripts ind :-( det er kun det sidste som er interessant.
Som skrevet - ønsker at value for country er: land1 land2 land3 , hvis der er valgt 3 lande...
Avatar billede Slettet bruger
07. juli 2008 - 16:17 #2
Loop alle options igennem og check dem separat om de er selected.

function updatecountry(ctlName) {
  var inputs = document.getElementsByTagName('INPUT');
  var options = document.getElementById('selectcountry').options;
  var selValue = '';
  for(var i = 0; i < options.length; i++)
    if(options[i].selected)
      selValue += options[i].value + " ";

  for(var i = 0; i < inputs.length; i++)
    if(inputs[i].id == ctlName)
      inputs[i].value = selValue;
}
Avatar billede kim.lundsteen Nybegynder
08. juli 2008 - 09:52 #3
Det spiller MAX. - Nice - Takker mange gange!!!!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester