Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [JavaScript]onchange a IE
lukko
post
Post #1





Grupa: Zarejestrowani
Postów: 49
Pomógł: 0
Dołączył: 12.03.2009

Ostrzeżenie: (10%)
X----


Witam,

IE se nie radził z atrybutem onClick i nadałem onChange po tej zamianie pod IE ruszyło smile.gif ale jest małe ale:

do onchange="outsideWindow(); jak najprościej wczytywać wartość z value?

żeby wartość value="1" wczytać onchange="outsideWindow[tutaj wartość value czyli 1]();

Kod
htmlString += '<select name="nazwa" size="30" onchange="outsideWindow1();">';
htmlString += '<option value="1">1</option>';
htmlString += '<option value="2">2</option>';
htmlString += '</select>';
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 15)
wookieb
post
Post #2





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




  1. outsideWindow(this.value);


--------------------
Go to the top of the page
+Quote Post
lukko
post
Post #3





Grupa: Zarejestrowani
Postów: 49
Pomógł: 0
Dołączył: 12.03.2009

Ostrzeżenie: (10%)
X----


No tak tylko wtedy efekt będzie: outsideWindow1 a do tego na końcu chce jeszcze te nawiasy () czyli by było outsideWindow1()
Go to the top of the page
+Quote Post
wookieb
post
Post #4





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




Ale tak się tego nie robi. Po co ci to?
Przekazujesz do funkcji argument i ona juz sobie wywoluje odpowiednie funkcjie jakie chcesz.


--------------------
Go to the top of the page
+Quote Post
lukko
post
Post #5





Grupa: Zarejestrowani
Postów: 49
Pomógł: 0
Dołączył: 12.03.2009

Ostrzeżenie: (10%)
X----


Żeby mi się odwołało do:

Kod
function outsideWindow1() {
     var win = new Window("win2", {className: "dialog", top:250, left:320, width:540, height:420, yIndex:20, opacity:1, title:"Nazwa sklepu", resizable: false, maximizable: false, minimizable: false});
    
     win.getContent().innerHTML = test();
     win.setDestroyOnClose();
     win.show();
    
   }


w outsideWindow2 inna wartość w outsideWindow3 inna itd. jak się posługiwałem atrybutem onclick to nie było problemu:
Kod
  <option VALUE="#" onclick="outsideWindow1()">Bartoszyce</option>

Kod
  <option VALUE="#" onclick="outsideWindow2()">Bartoszyce</option>


Ale IE tego nie mieliło FF, chrome itd se radziło no ale z IE wiele osób jeszcze korzysta i dlatego kombinuje z onchange by w odpowiednie miejsce mi value pobrało

Ten post edytował lukko 11.08.2009, 14:16:05
Go to the top of the page
+Quote Post
jmail
post
Post #6





Grupa: Zarejestrowani
Postów: 352
Pomógł: 53
Dołączył: 10.08.2009

Ostrzeżenie: (0%)
-----


a nie mozesz wszystkiego zrzucić do jednej funkcji JS i switchem to przełączyć a na select dać onChange="outsideWindow(this.value)"?
Go to the top of the page
+Quote Post
lukko
post
Post #7





Grupa: Zarejestrowani
Postów: 49
Pomógł: 0
Dołączył: 12.03.2009

Ostrzeżenie: (10%)
X----


A nie wiem czy ja tak mądry by se tak dać rade z tym skryptem i dlatego szukam coś dla mnie prostszego w JavaScript z tym onchange
Go to the top of the page
+Quote Post
bmL
post
Post #8





Grupa: Zarejestrowani
Postów: 301
Pomógł: 25
Dołączył: 15.07.2007
Skąd: Olsztyn

Ostrzeżenie: (0%)
-----


Ale twoje rozwiązanie jest trudniejsze. Zmień swoją funkcję na taką:

Kod
function outsideWindow(nr)
{
  switch (nr)
  {
    case 1: // tutaj w wypadku 1
            //np:
          var win = new Window("win2", {className: "dialog", top:250, left:320, width:540, height:420, yIndex:20, opacity:1, title:"Nazwa sklepu", resizable: false, maximizable: false, minimizable: false});
    
          win.getContent().innerHTML = test();
          win.setDestroyOnClose();
          win.show();

    break;

    case 2: // tutaj w wypadku 2
    break;
    case 3: // tutaj w wypadku 3
    break;
   //  itp....
  }
}

i zastosuj rozwiązanie wookieb.
Moim zdaniem to najlepsza droga.

Prawdopodobnie do switcha nie musisz wrzucać całej funkcji tylko jej część bo reszta by się powtarzała ale nie wiem dokładnie co. Więc sam możesz do tego dojść chociaż jest to niekonieczne winksmiley.jpg

Ten post edytował bmL 11.08.2009, 14:47:33


--------------------
Tutaj miał być jakiś mądry tekst. Miał być... No ale jest głupi tekst.
Go to the top of the page
+Quote Post
jmail
post
Post #9





Grupa: Zarejestrowani
Postów: 352
Pomógł: 53
Dołączył: 10.08.2009

Ostrzeżenie: (0%)
-----


jeszcze na krzywy ryj możesz zrobić tak biggrin.gif i będzie miał to co chcesz

  1.  
  2. function outsideWindow(nr)
  3. {
  4. eval('outsideWindow'+nr+'()');
  5. }
  6.  
Go to the top of the page
+Quote Post
lukko
post
Post #10





Grupa: Zarejestrowani
Postów: 49
Pomógł: 0
Dołączył: 12.03.2009

Ostrzeżenie: (10%)
X----


Zastosowałem się do bmL:

Kod
function outsideWindow(nr)
  {
    switch (nr)
    {
      case 1:
      var win = new Window("win2", {className: "dialog", top:250, left:320, width:540, height:420, yIndex:20, opacity:1, title:"Nazwa sklepu", resizable: false, maximizable: false, minimizable: false});
      win.getContent().innerHTML = test();
      win.setDestroyOnClose();
      win.show();
  
      break;
  
      case 2:
      var win = new Window("win2", {className: "dialog", top:250, left:320, width:540, height:420, yIndex:20, opacity:1, title:"Nazwa sklepu2", resizable: false, maximizable: false, minimizable: false});
      win.getContent().innerHTML = test2();
      win.setDestroyOnClose();
      win.show();
  
      break;
  
    }
  }


I odwołanie się do tego:
Kod
htmlString += '<select name="nazwa" size="30" onchange="outsideWindow(this.value);">';
  htmlString += '<option value="1">1</option>';
  htmlString += '<option value="2">2</option>';
  htmlString += '</select>';


No i lipa :/ a tak na krzywy ryj:
Kod
function outsideWindow(nr)
  {
  eval('outsideWindow'+nr+'()');
  }


To ja już nie wiem jak to w tym moim przypadku zastosować tongue.gif


Bo ogólnie mam tak:
Kod
function outsideWindow1() {
      var win = new Window("win2", {className: "dialog", top:250, left:320, width:540, height:420, yIndex:20, opacity:1, title:"Nazwa sklepu", resizable: false, maximizable: false, minimizable: false});
      
      win.getContent().innerHTML = test();
      win.setDestroyOnClose();
      win.show();
      
    }
    
   function outsideWindow2() {
      var win = new Window("win2", {className: "dialog", top:250, left:320, width:540, height:420, yIndex:20, opacity:1, title:"Nazwa sklepu2", resizable: false, maximizable: false, minimizable: false});
      
      win.getContent().innerHTML = test2();
      win.setDestroyOnClose();
      win.show();
      
    }


one się różnią innerHTML = do innych funkcji i coś tam jest bleble.....

I odwołanie do:

Kod
htmlString += '<select name="nazwa" size="30" onchange="outsideWindow(this.value);">';
  htmlString += '<option value="1">1</option>';
  htmlString += '<option value="2">2</option>';
  htmlString += '</select>';


Co niestety z onchange nie działa :/ Dla podkreslenia z onclick było ok:
Kod
htmlString += '<select name="nazwa" size="30" onchange="self.location.href = this.value">';
  htmlString += '    <option VALUE="#" onclick="outsideWindow1()">1</option>';
  htmlString += '    <option VALUE="#" onclick="outsideWindow2()">2</option>';
  htmlString += '</select>';


No ale pod IE onclick nie trawi snitch.gif

No i nie ogarniam tego choć się nie poddaje :-)

Ten post edytował lukko 12.08.2009, 06:58:20
Go to the top of the page
+Quote Post
golaod
post
Post #11





Grupa: Zarejestrowani
Postów: 419
Pomógł: 42
Dołączył: 12.08.2008
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


Do czyjegoś rozwiązania dodaj może
Kod
switch( parseInt( nr ) ) {
//reszta
}
Go to the top of the page
+Quote Post
lukko
post
Post #12





Grupa: Zarejestrowani
Postów: 49
Pomógł: 0
Dołączył: 12.03.2009

Ostrzeżenie: (10%)
X----


Kod
function outsideWindow(nr)
  {
    switch( parseInt( nr ) ) {
    {
      case 1:
      var win = new Window("win2", {className: "dialog", top:250, left:320, width:540, height:420, yIndex:20, opacity:1, title:"Nazwa sklepu", resizable: false, maximizable: false, minimizable: false});
      win.getContent().innerHTML = test();
      win.setDestroyOnClose();
      win.show();
  
      break;
  
      case 2:
      var win = new Window("win2", {className: "dialog", top:250, left:320, width:540, height:420, yIndex:20, opacity:1, title:"Nazwa sklepu2", resizable: false, maximizable: false, minimizable: false});
      win.getContent().innerHTML = test2();
      win.setDestroyOnClose();
      win.show();
  
      break;
  
    }


No i:

Kod
htmlString += '<select name="nazwa" size="30" onchange="outsideWindow(this.value);">';
htmlString += '<option value="1">1</option>';
htmlString += '<option value="2">2</option>';
htmlString += '</select>';


No niestety nie działa yy a ja już się tnę tongue.gif nie ma jakiegoś myku by pobrać outsideWindow[numer value]() - i sprawa by była rozwiązana smile.gif no przynajmniej prosto mi tak napisać heh
Go to the top of the page
+Quote Post
wookieb
post
Post #13





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




No a zobacz co ci wywala konsola błędów. W firefoxie jest ładna wbudowana. Potem zoptymailzuj ten swój kod bo patrzeć się na niego nie chce.


--------------------
Go to the top of the page
+Quote Post
nospor
post
Post #14





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




onchange pod IE sprawia problemy. To raz.
A dwa to ze nie this.value a this.options[this.selectedIndex].value

  1. <select name="nazwa" size="30" onclick="alert(this.options[this.selectedIndex].value);">
  2. <option value="1">1</option>
  3. <option value="2">2</option>


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
wookieb
post
Post #15





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




Cytat(nospor @ 12.08.2009, 09:34:12 ) *
A dwa to ze nie this.value a this.options[this.selectedIndex].value

Nie ma różnicy. To i to będzie działać.
Najpierw niech sprawdzi konsolę a to podstawa wszelkich działań.
Potem niech sobie na poczatku funkcji outsideWindow wyswietli jakiegos alerta ktory mu pokaze jaka jest aktualna wartość.
POTEM niech sprawdzi w ktorego case'a wchodzi switch (tez mozna alertami)


--------------------
Go to the top of the page
+Quote Post
bmL
post
Post #16





Grupa: Zarejestrowani
Postów: 301
Pomógł: 25
Dołączył: 15.07.2007
Skąd: Olsztyn

Ostrzeżenie: (0%)
-----


Golaod szedł w dobrym kierunku tylko że FX wywala błąd jak chcemy rzutować tą wartość do integera ale możesz:
Kod
      case 1:

pozmieniać na
Kod
      case '1':


--------------------
Tutaj miał być jakiś mądry tekst. Miał być... No ale jest głupi tekst.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 21.08.2025 - 08:20