Avatar billede stener Nybegynder
11. december 2006 - 20:20 Der er 3 kommentarer og
1 løsning

dropdown boks

Kan man via javascript flytte inholdet i en dropdown boks uden siden reloader.

Hvis dropdown ser sådan her ud

1
2
3
4
5

En bruger skriver 5 i et tekst felt og dropdown boksen ser så således ud uden siden reloader
5
1
2
3
4

Mvh

Steen
Avatar billede olebole Juniormester
12. december 2006 - 13:20 #1
<ole>

<script type="text/JavaScript">
function foo(idSel, idInp) {
    var oSel = document.getElementById(idSel),
    oInp = document.getElementById(idInp),
    sInp = oInp.value + "",
    o = document.createElement("option");
    o.setAttribute("value", sInp);
    o.appendChild( document.createTextNode(sInp) );
    oSel.insertBefore(o, oSel.firstChild);
    oSel.setAttribute("selectedIndex", 0);
}
</script>
<select id="gnu">
    <option value="1">1</option>
    <option value="2">2</option>
    <option value="3">3</option>
</select>

<input id="hest" type="text">

<button onclick="foo('gnu', 'hest')">TEST</button>

Jeg ved godt, det virker tåbeligt at skrive:
    sInp = oInp.value

- når nu resten er skrevet i korrekt DOM, men desværre er FF for lam til at bruge getAttribute på elementets value-attribute - men forsøger at aflæse elementets defaultValue i stedet!  :o|

/mvh
</bole>
Avatar billede stener Nybegynder
14. december 2006 - 14:08 #2
Tak for din besvarelse beklager jeg har oprettet 2 ens spørgsmål.


Array der bliver generet ud fra databasens indhold

      fra[0]  = 50;
      til[0]  = 100;
      pris[0]  = 4500;
      ident[0] = 1;

      fra[1]  = 100;
      til[1]  = 120;
      pris[1]  = 3500;
      ident[1] = 1;

      fra[2]  = 120;
      til[2]  = 150;
      pris[2]  = 3300;
      ident[2] = 1;



Giver følgende dropdown:

<OPTION value="50">50 < 100 price 4,500.00 $</OPTION>
<OPTION value="100">100 < 120 price 3,500.00 $</OPTION>
<OPTION value="120">120 < 150 price 3,300.00 $</OPTION>
       

Det jeg gerne vil er at hvis brugeren indtaster et tal der er >=100 og <120 i en tekstboks skal dropdown automatisk sætte

<OPTION value="100">100 < 120 price 3,500.00 $</OPTION> øverst i dropdownboksen den skal ikke adde nye kun sætte det valgte interval øverst.

Når brugeren enten vælger noget i dropdown boksen eller skriver noget i tekst feltet bruger jeg følgede kode til at sætte den rigtige pris.

Hvis tekstfelt:

function Changeprice(formnavn, dd) {
      var tal = document.forms[formnavn].antal.value
      for (var i=0; i < ident.length; i++)
      {
      if (ident[i] == dd) {       
      if ( fra[i] <= tal && til[i] > tal ) {
      document.forms[formnavn].pris.value = toDec(pris[i])   
        }
      }
      }
      }   


Hvis dropdown:

  function Changeprice2(formnavn, dd) {
      var tal = document.forms[formnavn].selector.value
      for (var i=0; i < ident.length; i++)
      {
      if (ident[i] == dd) {       
      if ( fra[i] <= tal && til[i] > tal ) {
      document.forms[formnavn].pris.value = toDec(pris[i])
      document.forms[formnavn].antal.value = tal
        }
      }
      }
      }   


Formnavn = navnet på den valgte form
dd      = er produktets unikke id

Kan din funktion laves så der ikke bliver oprettet et nyt element i dropdown boksen men den bare sætter det valgte interval øverste.

Mvh

Steen
Avatar billede stener Nybegynder
14. december 2006 - 20:28 #3
Har fundet ud af det lukker
Avatar billede stener Nybegynder
14. december 2006 - 20:30 #4
Du har hjulpet mig så mange gange ole så gider du ikke smide et :) som svar i spm
http://www.eksperten.dk/spm/749790

Så giver jeg dig de points for ulejligheden..

Og tak for hjælpen

Mvh

Steen
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