Avatar billede n_j_b Nybegynder
04. maj 2011 - 21:54 Der er 6 kommentarer og
1 løsning

Tjek radio-button hvis onClick i selectbox

Hej eksperter!

Kan det lade sig gøre, at kun den ene af af de to nednestående SELECT-boxe kan være valgt ad gangen. Lidt i stil med det man kender med radiobuttons.

Det skal være sådan, at kun værdien fra den ene af SELECTboxene  sendes videre ved submit. SELECTboxene skal dog have forskellige navne.

Jeg tæbkte at de nok kunne gøres med noget javascript, men jeg kan ikke regne ud hvordan...
           
<select name="SEL_1">
<option value="1">1</option>
</select>

<select name="SEL_2">
<option value="2">2</option>
</select>

På forhånd tak!
Avatar billede olsensweb.dk Ekspert
05. maj 2011 - 18:28 #1
Avatar billede n_j_b Nybegynder
05. maj 2011 - 20:38 #2
Mange tak for svaret. Det er noget i den retning...

I stedet for en togglefunktion kan det så lade sig gøre, at hver felt er tilknyttet hver sin knap. Jeg skal bruge funktionen til en søgemaskine, hvor det kun giver mening hvis et af input'ene er aktive af gangen og hver knap repræsenterer hver sit inputfelt. ???
Avatar billede olsensweb.dk Ekspert
05. maj 2011 - 21:47 #3
>I stedet for en togglefunktion kan det så lade sig gøre, at hver felt er tilknyttet hver sin knap.
er det ikke det jeg har lavet i ver1.htm ??, (øverste link).
jeg har dog rettet en lille tanke torsk, så man nu kan switche frem og tilbage flere gange
Avatar billede n_j_b Nybegynder
05. maj 2011 - 23:21 #4
Super. Jeg var ikke helt sikker på hvordan den øverste skulle forstås før rettelsen. Men nu er det perfekt. Det er lige hvad jeg har brug for.

Smid et svar, så får du point.

Mange tak!
Avatar billede olsensweb.dk Ekspert
06. maj 2011 - 06:42 #5
sådan blev løsningen:
 <!DOCTYPE html>
<html>
<head>
    <meta http-equiv="content-type" content="text/html; charset=utf-8"/>
    <title></title>
    <style type="text/css">
    </style>
    <script type="text/javascript">
    function EnableSelect1(){
        document.getElementById("select1").disabled=false;       
        document.getElementById("select2").disabled=true;       
        document.getElementById("button1").disabled=true;       
        document.getElementById("button2").disabled=false;       
    }
    function EnableSelect2(){
        document.getElementById("select1").disabled=true;       
        document.getElementById("select2").disabled=false;       
        document.getElementById("button1").disabled=false;       
        document.getElementById("button2").disabled=true;       
    }
    </script>
</head>
<body>
<p>&nbsp;</p>
<form name="form1" method="post" action="test.php">
  <p>
    <select name="select1" id="select1" disabled="disabled">
      <option value="1">tekst line 1</option>
      <option value="2">tekst line 2</option>
      <option value="3">tekst line 3</option>
      <option value="4">tekst line 4</option>
      <option value="5">tekst line 5</option>
    </select>
    <input type="button" name="button1" id="button1" value="Enable select box 1" onclick="EnableSelect1()">
  </p>
  <p>
    <select name="select2" id="select2" disabled="disabled">
        <option value="11">tekst line 11</option>
          <option value="12">tekst line 12</option>
          <option value="13">tekst line 13</option>
          <option value="14">tekst line 14</option>
          <option value="15">tekst line 15</option>
    </select>
    <input type="button" name="button2" id="button2" value="Enable select box 2" onclick="EnableSelect2()">
  </p>
  <input type="submit" name="button3" id="button3" value="Submit">
</form>
<p>&nbsp;</p>
</body>
</html>
Avatar billede olsensweb.dk Ekspert
07. maj 2011 - 09:39 #6
tfp.

hvis du skal anvende mere en 2 select boxe, kunne du overveje at lave det som et array.
demo: http://olsensweb.dk/test/experten/spm/938102/ver3.htm

 <!DOCTYPE html>
<html>
<head>
    <meta http-equiv="content-type" content="text/html; charset=utf-8"/>
    <title></title>
    <style type="text/css">
    </style>
    <script type="text/javascript">   
    /*
    // standart
    function EnableSelect(no){       
        //var lng = document.form1["select[]"].length; // OK
        var lng = document.form1["button[]"].length; // OK
        for(i=0; i<lng; i++){
            if(i==no){
                document.form1["button[]"][i].disabled=true;
                document.form1["select[]"][i].disabled=false;
            }
            else{
                document.form1["button[]"][i].disabled=false;
                document.form1["select[]"][i].disabled=true;
            }
        }       
    }
    */
    // som DOM, hvilke som regl lidt hurtigere
    function EnableSelect(no){                   
        var SelectNodeList = document.getElementsByName("select[]");
        var ButtonNodeList = document.getElementsByName("button[]");        
        var lng = SelectNodeList.length;        
        for(i=0; i<lng; i++){
            if(i==no){
                ButtonNodeList[i].disabled=true;                   
                SelectNodeList[i].disabled=false;                
            }
            else{
                ButtonNodeList[i].disabled=false;                   
                SelectNodeList[i].disabled=true;               
            }
        }       
    }   
    </script>
</head>
<body>
<p>&nbsp;</p>
<form name="form1" method="post" action="test.php">
  <p>
    <select name="select[]" disabled="disabled">
      <option value="01">tekst line 01</option>
      <option value="02">tekst line 02</option>
      <option value="03">tekst line 03</option>
      <option value="04">tekst line 04</option>
      <option value="05">tekst line 05</option>
    </select>
    <input type="button" name="button[]" value="Enable select box 0" onclick="EnableSelect(0)">
  </p>
  <p>
    <select name="select[]" disabled="disabled">
        <option value="11">tekst line 11</option>
          <option value="12">tekst line 12</option>
          <option value="13">tekst line 13</option>
          <option value="14">tekst line 14</option>
          <option value="15">tekst line 15</option>
    </select>
    <input type="button" name="button[]" value="Enable select box 1" onclick="EnableSelect(1)">
  </p>
  <p>
    <select name="select[]" disabled="disabled">
        <option value="21">tekst line 21</option>
          <option value="22">tekst line 22</option>
          <option value="23">tekst line 23</option>
          <option value="24">tekst line 24</option>
          <option value="25">tekst line 25</option>
    </select>
    <input type="button" name="button[]" value="Enable select box 2" onclick="EnableSelect(2)">
  </p>
  <p>
    <select name="select[]" disabled="disabled">
        <option value="31">tekst line 31</option>
          <option value="32">tekst line 32</option>
          <option value="33">tekst line 33</option>
          <option value="34">tekst line 34</option>
          <option value="35">tekst line 35</option>
    </select>
    <input type="button" name="button[]" value="Enable select box 3" onclick="EnableSelect(3)">
  </p>
  <p>
    <select name="select[]" disabled="disabled">
        <option value="41">tekst line 41</option>
          <option value="42">tekst line 42</option>
          <option value="43">tekst line 43</option>
          <option value="44">tekst line 44</option>
          <option value="45">tekst line 45</option>
    </select>
    <input type="button" name="button[]" value="Enable select box 4" onclick="EnableSelect(4)">
  </p>
  <input type="submit" name="button3" id="button3" value="Submit">
</form>
<p>&nbsp;</p>
</body>
</html>
Avatar billede n_j_b Nybegynder
09. maj 2011 - 19:48 #7
Super. Det vil jeg lige kigge nærmere på.
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