Avatar billede bramsing Nybegynder
27. april 2004 - 18:23 Der er 3 kommentarer og
1 løsning

Spørgsmål vedr. 2 select bokse fra jakoba

Hejsa... Jeg fandt jakoba's kode eks. vedr. 2 select boxe der "samarbejder"
Nu er JavaScript ikke lige min stærke side... og denne kode driller da også...

Hvordan "opfanger" jeg hvad der er klikket på i begge bokse i eksv. 2 text bokse ??

Hvis jeg nu har valgt [mad] i select 1 og [burger] i select 2 så skulle resultaterne gerne komme i 2 teksbokse

Jeg håber i forstår spørgsmålet.

Her er den omtalte kode...

>>>>SNIP<<<<
<html>
<head><title>Select menu vælger sekundær select menu.</title>

<script language="JavaScript"> <!--

var selbokse = new Array();

selbokse['land'] =
    new Array ( "- vælg type -",    "mad", "drikkevare"    ), // første dropdown

    // forhvert valg i første dropdown skal der så være en værdi og et navn
selbokse['madsted'] =
    new Array(
        new Array (    // selbokse['madsted'][0]  hvis mad: anden dropdown
            "-1|- vælg mad -",
            "pomfrit|pomfrit",
            "burger|burger",
            "bøf|bøf"
                  ),
        new Array (    // selbokse['madsted'][1]  hvis drikkevare anden dropdown
            "-1|- vælg drikkevare -",
            "cola|cola",
            "appelsin|appelsin",
            "sportsvand|sportsvand"
                  )
            );

var offMenu = new Array( " \< - \< - \< - \< - \< -" ); // >

var sel;
var selo;

function setOption( idx, data ) {
  var tmp = data.split("|");
  if ( tmp.length == 1 ) { tmp[1]=tmp[0]; tmp[0]="" };
  if ( selo.length > idx ) {
      selo[idx].text = tmp[1];
      selo[idx].value = tmp[0];
  } else
      selo[idx] = new Option( tmp[1], tmp[0] );
}; //end setOption( number, string, string )

function setupMenu( selobj, menuarray ) {
//alert("menuarray type: " +typeof(menuarray) );
    sel  = selobj.selectedIndex;
    selo = selobj.options;
    for (var i=0; menuarray.length>i; i++ ) setOption( i, menuarray[i] );
    selobj.selectedIndex = 0;
    selobj.disabled = ( menuarray==offMenu )?true:false;
    selo.length = menuarray.length;
}; //end setupMenu( select object, array )

var idxLand = -1;  // intet land valgt

function setMenu ( frm, selNavn ) {
  if ( selNavn == "" ) {
      setupMenu( frm.land, selbokse['land'] );
      setupMenu( frm.madsted, offMenu );
      idxLand = -1;
  } else
  if ( selNavn == 'land' ) {
      idxLand = frm.land.selectedIndex-1;
      if ( idxLand >= 0 )
          setupMenu( frm.madsted, selbokse['madsted'][idxLand] );
      else
          setupMenu( frm.madsted, offMenu );
  } else
  if ( selNavn == 'madsted' && idxLand>=0 ) {
//jeg har fjernet  'hop til adresse i value, og skriver blot valget i en alert.
      alert( "du har valgt " + frm.madsted.options[frm.madsted.selectedIndex].value );
//      var helurl = "http://" + frm.madsted.options[frm.madsted.selectedIndex].value;
//      window.open( helurl, 'winduesnavn' );
  } else
      alert( "Slem programfejl. du bør aldrig se denne besked." );
}; //end setMenu ( radioKnap element )

// --> 

</script>
 
</head>
<body  onload="setMenu( document.sfrm, '' )">

<p><form name="sfrm" action="dest_fil.asp" onsubmit="return pakResultat(this);">
<center><table border=0 cellspacing=10>
  <tr>
    <td valign='top'>
        <select name="land" width="200px" style="width:200px"
          onchange="setMenu(this.form, this.name);">
          <option value=1>- - - - - - - - - - - -</option>
          <option value=2> </option>
          <option value=3> </option> <!-- indsæt toppe options af hensyn til NS4.x -->
          <option value=4> </option>
          <option value=5> </option>
          <option value=6> </option>
          <option value=7> </option>
          <option value=8> </option>
          <option value=9> </option>
          <option value=10> </option>
        </select>
    </td>
    <td valign='top'>
        <select name="madsted" width="200px" style="width:200px"
          onfocus="if (0>idxLand) this.blur();"
          onchange="if (this.selectedIndex>0) setMenu(this.form, this.name);">
          <option value=1>- - - - - - - - - - - -</option>
          <option value=2> </option>
          <option value=3> </option>
          <option value=4> </option>
          <option value=5> </option>
          <option value=6> </option>
          <option value=7> </option>
          <option value=8> </option>
          <option value=9> </option>
          <option value=10> </option>
        </select>
    </td>
  </tr>
</table></center>
</form>

<p align='right'><!-- WebWriter AutoDato -->Opdateret: 24.9.2002<!-- WW -->
</body>
</html>
Avatar billede nute Nybegynder
27. april 2004 - 18:53 #1
<html>
<head><title>Select menu vælger sekundær select menu.</title>

<script language="JavaScript"> <!--

var selbokse = new Array();

selbokse['land'] =
    new Array ( "- vælg type -",    "mad", "drikkevare"    ), // første dropdown

    // forhvert valg i første dropdown skal der så være en værdi og et navn
selbokse['madsted'] =
    new Array(
        new Array (    // selbokse['madsted'][0]  hvis mad: anden dropdown
            "-1|- vælg mad -",
            "pomfrit|pomfrit",
            "burger|burger",
            "bøf|bøf"
                  ),
        new Array (    // selbokse['madsted'][1]  hvis drikkevare anden dropdown
            "-1|- vælg drikkevare -",
            "cola|cola",
            "appelsin|appelsin",
            "sportsvand|sportsvand"
                  )
            );

var offMenu = new Array( " \< - \< - \< - \< - \< -" ); // >

var sel;
var selo;

function setOption( idx, data ) {
  var tmp = data.split("|");
  if ( tmp.length == 1 ) { tmp[1]=tmp[0]; tmp[0]="" };
  if ( selo.length > idx ) {
      selo[idx].text = tmp[1];
      selo[idx].value = tmp[0];
  } else
      selo[idx] = new Option( tmp[1], tmp[0] );
}; //end setOption( number, string, string )

function setupMenu( selobj, menuarray ) {
//alert("menuarray type: " +typeof(menuarray) );
    sel  = selobj.selectedIndex;
    selo = selobj.options;
    for (var i=0; menuarray.length>i; i++ ) setOption( i, menuarray[i] );
    selobj.selectedIndex = 0;
    selobj.disabled = ( menuarray==offMenu )?true:false;
    selo.length = menuarray.length;
}; //end setupMenu( select object, array )

var idxLand = -1;  // intet land valgt

function setMenu ( frm, selNavn ) {
  if ( selNavn == "" ) {
      setupMenu( frm.land, selbokse['land'] );
      setupMenu( frm.madsted, offMenu );
      idxLand = -1;
     
  } else
      if ( selNavn == 'land' ) {
          idxLand = frm.land.selectedIndex-1;
          if ( idxLand >= 0 )
          {
          setupMenu( frm.madsted, selbokse['madsted'][idxLand] );
          document.getElementById( 'txt' + selNavn ).value = frm.land.options[ frm.land.selectedIndex ].text;
        }
          else
        {
          setupMenu( frm.madsted, offMenu );
          document.getElementById( 'txt' + selNavn ).value = "";
        }
  } else
  if ( selNavn == 'madsted' && idxLand>=0 ) {
//jeg har fjernet  'hop til adresse i value, og skriver blot valget i en alert.
      alert( "du har valgt " + frm.madsted.options[frm.madsted.selectedIndex].value );
      document.getElementById( 'txt' + selNavn ).value = frm.madsted.options[ frm.madsted.selectedIndex ].text;
//      var helurl = "http://" + frm.madsted.options[frm.madsted.selectedIndex].value;
//      window.open( helurl, 'winduesnavn' );
  } else
      alert( "Slem programfejl. du bør aldrig se denne besked." );
}; //end setMenu ( radioKnap element )

// --> 

</script>
 
</head>
<body  onload="setMenu( document.sfrm, '' )">

<p><form name="sfrm" action="dest_fil.asp" onsubmit="return pakResultat(this);">
<center><table border=0 cellspacing=10>
  <tr>
    <td valign='top'>
        <select name="land" width="200px" style="width:200px"
          onchange="setMenu(this.form, this.name);">
          <option value=1>- - - - - - - - - - - -</option>
          <option value=2> </option>
          <option value=3> </option> <!-- indsæt toppe options af hensyn til NS4.x -->
          <option value=4> </option>
          <option value=5> </option>
          <option value=6> </option>
          <option value=7> </option>
          <option value=8> </option>
          <option value=9> </option>
          <option value=10> </option>
        </select>
    </td>
    <td valign='top'>
        <select name="madsted" width="200px" style="width:200px"
          onfocus="if (0>idxLand) this.blur();"
          onchange="if (this.selectedIndex>0) setMenu(this.form, this.name);">
          <option value=1>- - - - - - - - - - - -</option>
          <option value=2> </option>
          <option value=3> </option>
          <option value=4> </option>
          <option value=5> </option>
          <option value=6> </option>
          <option value=7> </option>
          <option value=8> </option>
          <option value=9> </option>
          <option value=10> </option>
        </select>
    </td>
  </tr>
  <tr>
      <td>
        <input type="text" id="txtland">
    </td>
    <td>
        <input type="text" id="txtmadsted">
    </td>
  </tr>
</table></center>
</form>

<p align='right'><!-- WebWriter AutoDato -->Opdateret: 24.9.2002<!-- WW -->
</body>
</html>
Avatar billede bramsing Nybegynder
27. april 2004 - 22:18 #2
Hej nute...

Det ser ud til at virke..... næsten... for hvis man bruger pil-testerne så kommer der ikke noget ned i txt boksene :-(

Men ellers ser det fint ud... Lægger du et svar hvis du vil have point ??
Avatar billede nute Nybegynder
28. april 2004 - 10:16 #3
hmm ... det gør det for mig.
Avatar billede steen_hansen Forsker
28. april 2004 - 10:29 #4
Fedt script, virker også for mig :o)
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