Avatar billede soelver Nybegynder
18. maj 2003 - 13:51 Der er 13 kommentarer og
2 løsninger

2 dropdownmenuer og et tekstfelt i samarbejde

Hejsa.

Jeg vil starte med at pointere, at jeg ikke har nogen som helst forstand på JavaScript, så I må meget gerne skære det ud i pap for mig :o)

Jeg har brug for et JavaScript, der har to dropdown boxe, samt et tekstfelt. Når der er valgt i den første box, skal box nr.2 blive valgbar, og slutteligt returnere valget til et tekstfelt.

Jeg har sådan set fundet et gratis script der kan disse ting, og det er jeg naturligvis glad for. Mit problem består så i, at i dette script forsvinder box nr.2 efter valg, og jeg ville meget gerne have, at den fortsat var synlig, så man kan se hvad man har valgt.

Desuden ligger box nr.2 som et div layer, og roder rundt oven i den anden box. Dette kunne jeg også tænke mig at ændre, således at de tre felter ligger under hinanden. Box nr.2 skal dog ikke være mulig at vælge fra, før man har valgt fra box nr.1, idet submenuen jo afhænger af hvad man har valgt i første omgang (som det også er i dette script).

Derudover ser jeg et problem i, at hvis man vælger forkert i box 2, og derfor har brug for at vælge det samme i box 1 igen, kommer box 2 ikke frem.

I kan se funktionen her:
http://www.soelver.dk/javasubmenu.asp

I kildekoden kan I se opbygning af funktionen.

Håber at en eller anden venlig sjæl vil forbarme sig over mig, og give en hjælpende hånd.

Hvis der er noget der skal uddybes, eller ikke står helt klart må I endelig sige til :o)
Avatar billede -master-d- Nybegynder
18. maj 2003 - 13:58 #1
Avatar billede -master-d- Nybegynder
18. maj 2003 - 14:01 #2
Avatar billede soelver Nybegynder
18. maj 2003 - 14:03 #3
Kan man flytte den nedenunder den anden?

Nr.2 er helt rigtig ellers.
Hvor lækkert ;o)
Avatar billede roenving Novice
18. maj 2003 - 14:15 #4
Du kan også prøve:


<html>
<head>
<style>
    #sub1, #sub2, #sub3
    { position: absolute;
      left: 480px;
          top: 50px;
      visibility: hidden;
      z-index: 3
    }
</style>

<SCRIPT LANGUAGE="JavaScript">

<!-- This script and many more are available free online at -->
<!-- The JavaScript Source!! http://javascript.internet.com -->
<!-- Original:  Michele Bracci (michele@againstwhat.it) -->
<!-- Web Site:  http://www.againstwhat.it -->

<!-- Begin
catnumber = 3
offset = 150
performOnchange = false
if (document.all) {
  docObj = "document.all."
  styleObj = ".style"
  } else {
  docObj = "document."
  styleObj = ""
}
function openselect(subcat) {
  popupenable = eval(docObj + subcat + ".childNodes[0]");
alert(popupenable.name);
  popupenable.disabled=false;
  popupselect = eval(docObj + subcat + styleObj)
  popupselect.visibility = "visible"
}
function closeselect(submenu,subcat){
  popupselect = eval(docObj + subcat + ".childNodes[0]");// + styleObj)
  if (submenu.selectedIndex != 0) {
//    popupselect.visibility = "hidden"
    popupselect.disabled=true;
    numchoice = submenu.selectedIndex
    choice = submenu[numchoice].value
    subcategory.value = choice
//    submenu.selectedIndex = 0
  }
}
function lock() {
  performOnchange = false
}
function unlock() {
  performOnchange = true
}
function selectSub(cat) {
  for (i=1; i <= catnumber; i++) {
    subcat = "sub" + i
    popupselect = eval(docObj + subcat + styleObj)
    popupselect.visibility = "hidden"
    popupenable = eval(docObj + subcat + ".childNodes[0]");
    popupenable.disabled=false;
  }
  if (performOnchange == true) {
    letsopen = "sub" + cat.selectedIndex
    if (letsopen == "sub0") {
      alert("No category selected")
      choice = "- subcategory -"
      subcategory.value = choice
      cat.focus()
      } else {
      openselect(letsopen)
//      lock()
    }
  }
}
//  End -->
</script>

<title>Java Sub menu problemer</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<div align="center">
<span id="sub1">
  <select name="subalfa" onchange="closeselect(this,'sub1')" disabled>
    <option selected value="">- Vælg variant -
    <option value="2190 kr">145, 146, 147
    <option value="2250">75, 155, 156, GTV, Spider
    <option value="2450">164,166
  </select>
</span>
<span id="sub2">
  <select name="subaudi" onchange="closeselect(this,'sub2')" disabled>
    <option selected value="">- Vælg variant -
    <option value="2190">A2, A3
    <option value="2250">80, A4, TT
  </select>
</span>
<span id="sub3">
  <select name="subbmw" onchange="closeselect(this,'sub3')" disabled>
    <option selected value="">- Vælg variant -
    <option value="2250">300
    <option value="2450">500, Z3
    <option value="2650">700, 800, XS
  </select>
</span>
</span>
  <select name="categoria" onmouseover="unlock()" onchange="selectSub(this)">
    <option selected value="">-- Vælg bilmærke --
    <option value="alfa">Alfa Romeo
    <option value="audi">Audi
    <option value="bmw">BMW
    <option value="chevrolet">Chevrolet
  </select><br>
<div style="position:absolute;left:480px;top:100px">
<input type="text" name="subcategory" readonly="readonly" value="- subcategory -">
</div></div>



<!-- Script Size:  3.41 KB -->
</body>
</html>
Avatar billede roenving Novice
18. maj 2003 - 14:24 #5
Jeg har ikke brugt kræfterne på positioneringen endnu, men det er ikke så omfattende -- der er forøvrigt også noget med layout .-)
Avatar billede -master-d- Nybegynder
18. maj 2003 - 14:24 #6
Lægger lige et svar så.
Avatar billede soelver Nybegynder
18. maj 2003 - 14:26 #7
Perfekt bortset fra den popup alert der kommer med subbmw, subaudi osv.
Ekstremt nice at submenu to bliver disabled efter valg.

Kan den alert fjernes?
Avatar billede -master-d- Nybegynder
18. maj 2003 - 14:27 #8
Her har du hele koden :


<html>
<head>
<style>
    #sub1, #sub2, #sub3
    { position: absolute;
      left: 480px;
      visibility: hidden;
      z-index: 3
    }
</style>

<SCRIPT LANGUAGE="JavaScript">

<!-- This script and many more are available free online at -->
<!-- The JavaScript Source!! http://javascript.internet.com -->
<!-- Original:  Michele Bracci (michele@againstwhat.it) -->
<!-- Web Site:  http://www.againstwhat.it -->

<!-- Begin
catnumber = 3
offset = 150
performOnchange = false
if (document.all) {
  docObj = "document.all."
  styleObj = ".style"
  } else {
  docObj = "document."
  styleObj = ""
}
function openselect(subcat) {
  popupselect = eval(docObj + subcat + styleObj)
  popupselect.visibility = "visible"
}
function closeselect(submenu,subcat){
  popupselect = eval(docObj + subcat + styleObj)
  if (submenu.selectedIndex != 0) {
    numchoice = submenu.selectedIndex
    choice = submenu[numchoice].value
    subcategory.value = choice
    submenu[numchoice] = selected
  }
}
function lock() {
  performOnchange = false
}
function unlock() {
  performOnchange = true
}
function selectSub(cat) {
  for (i=1; i <= catnumber; i++) {
    subcat = "sub" + i
    popupselect = eval(docObj + subcat + styleObj)
    popupselect.visibility = "hidden"
  }
  if (performOnchange == true) {
    letsopen = "sub" + cat.selectedIndex
    if (letsopen == "sub0") {
      alert("No category selected")
      choice = "- subcategory -"
      subcategory.value = choice
      cat.focus()
      } else {
      openselect(letsopen)
      lock()
    }
  }
}
//  End -->
</script>

<title>Java Sub menu problemer</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<div align="center">
<span id="sub1">
  <select name="subalfa" onchange="closeselect(this,'sub1')">
    <option selected value="">- Vælg variant -
    <option value="2190 kr">145, 146, 147
    <option value="2250">75, 155, 156, GTV, Spider
    <option value="2450">164,166
  </select>
</span>
<span id="sub2">
  <select name="subaudi" onchange="closeselect(this,'sub2')">
    <option selected value="">- Vælg variant -
    <option value="2190">A2, A3
    <option value="2250">80, A4, TT
  </select>
</span>
<span id="sub3">
  <select name="subbmw" onchange="closeselect(this,'sub3')">
    <option selected value="">- Vælg variant -
    <option value="2250">300
    <option value="2450">500, Z3
    <option value="2650">700, 800, XS
  </select>
</span>
</span>
  <select name="categoria" onmouseover="unlock()" onchange="selectSub(this)">
    <option selected value="">-- Vælg bilmærke --
    <option value="alfa">Alfa Romeo
    <option value="audi">Audi
    <option value="bmw">BMW
    <option value="chevrolet">Chevrolet
  </select><br>
<input type="text" name="subcategory" readonly="readonly" value="- subcategory -">
</div>

</body>
</html>
Avatar billede roenving Novice
18. maj 2003 - 14:29 #9
Undskyld glemte at fjerne min debug-info:


<html>
<head>
<style>
    #sub1, #sub2, #sub3
    { position: absolute;
      left: 480px;
          top: 50px;
      visibility: hidden;
      z-index: 3
    }
</style>

<SCRIPT LANGUAGE="JavaScript">

<!-- This script and many more are available free online at -->
<!-- The JavaScript Source!! http://javascript.internet.com -->
<!-- Original:  Michele Bracci (michele@againstwhat.it) -->
<!-- Web Site:  http://www.againstwhat.it -->

<!-- Begin
catnumber = 3
offset = 150
performOnchange = false
if (document.all) {
  docObj = "document.all."
  styleObj = ".style"
  } else {
  docObj = "document."
  styleObj = ""
}
function openselect(subcat) {
  popupenable = eval(docObj + subcat + ".childNodes[0]");
  popupenable.disabled=false;
  popupselect = eval(docObj + subcat + styleObj)
  popupselect.visibility = "visible"
}
function closeselect(submenu,subcat){
  popupselect = eval(docObj + subcat + ".childNodes[0]");
  if (submenu.selectedIndex != 0) {
    popupselect.disabled=true;
    numchoice = submenu.selectedIndex
    choice = submenu[numchoice].value
    subcategory.value = choice
  }
}
function lock() {
  performOnchange = false
}
function unlock() {
  performOnchange = true
}
function selectSub(cat) {
  for (i=1; i <= catnumber; i++) {
    subcat = "sub" + i
    popupselect = eval(docObj + subcat + styleObj)
    popupselect.visibility = "hidden"
    popupenable = eval(docObj + subcat + ".childNodes[0]");
    popupenable.disabled=false;
  }
  if (performOnchange == true) {
    letsopen = "sub" + cat.selectedIndex
    if (letsopen == "sub0") {
      alert("No category selected")
      choice = "- subcategory -"
      subcategory.value = choice
      cat.focus()
      } else {
      openselect(letsopen)
    }
  }
}
//  End -->
</script>

<title>Java Sub menu problemer</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<div align="center">
<span id="sub1">
  <select name="subalfa" onchange="closeselect(this,'sub1')" disabled>
    <option selected value="">- Vælg variant -
    <option value="2190 kr">145, 146, 147
    <option value="2250">75, 155, 156, GTV, Spider
    <option value="2450">164,166
  </select>
</span>
<span id="sub2">
  <select name="subaudi" onchange="closeselect(this,'sub2')" disabled>
    <option selected value="">- Vælg variant -
    <option value="2190">A2, A3
    <option value="2250">80, A4, TT
  </select>
</span>
<span id="sub3">
  <select name="subbmw" onchange="closeselect(this,'sub3')" disabled>
    <option selected value="">- Vælg variant -
    <option value="2250">300
    <option value="2450">500, Z3
    <option value="2650">700, 800, XS
  </select>
</span>
</span>
  <select name="categoria" onmouseover="unlock()" onchange="selectSub(this)">
    <option selected value="">-- Vælg bilmærke --
    <option value="alfa">Alfa Romeo
    <option value="audi">Audi
    <option value="bmw">BMW
    <option value="chevrolet">Chevrolet
  </select><br>
<div style="position:absolute;left:480px;top:100px">
<input type="text" name="subcategory" readonly="readonly" value="- subcategory -">
</div></div>



<!-- Script Size:  3.41 KB -->
</body>
</html>

hth
jes
Avatar billede soelver Nybegynder
18. maj 2003 - 14:37 #10
Første gang jeg selv spørger om noget herinde, plejer at være omvendt - omend langt fra denne kategori. Føler mig utrolig vanskelig. Ville ønske jeg selv havde forstand på det, men jeg må nok indrømme jeg hælder mere til den grafiske side :)

Meget smukt arbejde. Og hurtig respons.
Jeg takker ydmygst for jeres tid og hjælp :o)

Jeg bruger roenving's idet det er helt som jeg ønskede. Men håber det er i orden at give -master-d- lidt for ulejligheden? Vil 150 til roenving og 50 til -master-d- være i orden med jer? Eller hvordan foretrækker I det selv?
Avatar billede roenving Novice
18. maj 2003 - 14:39 #11
Beløn arbejdet ...
Avatar billede soelver Nybegynder
18. maj 2003 - 14:41 #12
Kunne du uddybe det lidt? Jeg kan naturligvis give dig de 200 eftersom du har løst opgaven som forespurgt. Det er dit resultat jeg vil bruge, og derfor må det være op til dig :o)
Avatar billede roenving Novice
18. maj 2003 - 14:49 #13
-master-d- har også gjort en indsats ...

-- måske er min fortolkning af hvad du ønskede tættere på, så du vil bruge min løsning

-- så jeg kan kun sige ja til dit spm i 18/05-2003 14:37:45

!-)
Avatar billede soelver Nybegynder
18. maj 2003 - 14:51 #14
Tusind tak for jeres hjælp.
Avatar billede roenving Novice
18. maj 2003 - 14:52 #15
Velbekomme -- og tak for points ;~}
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