ukrywanie pól w zależności od select

Odpowiedz Nowy wątek
2019-08-25 23:19

Rejestracja: 1 rok temu

Ostatnio: 6 miesięcy temu

0

Witam, mam problem potrzebuję ukryć kilka pól w zależności od wyboru w "select", to chodzi ale przy ładowaniu strony z zaznaczonym wyborem to nie działa poniżej daję kod strony, co mam zrobić/zmienić żeby zadziałało?

<html>
<head>
<title>test</title>

<script type="text/javascript">
function pokaz(obj)
{
    document.getElementById(obj).style.display = '';
}
function ukryj(obj)
{
    document.getElementById(obj).style.display = 'none';
}
</script>
</head>
<body onload="pokaz(obj);ukryj(obj);">
<select name="KRAJEW" onchange="if(this.selectedIndex > 1) { pokaz('dost_reczn1'); } else { ukryj('dost_reczn1'); } ">
<option  value="0">--Country--</option>
<option  selected value="1">Australia</option>
<option  value="2">England</option>
<option  value="3">Germany</option>
<option  value="4">USA</option>
</select><br />
<table>
<tr><td CLASS=tytul-rl>pole1</td><td id="dost_reczn1">11111</td></tr>
<tr><td CLASS=tytul-rl>pole2</td><td id="dost_reczn2">22222</td></tr>
</table>
</body>
</html>
edytowany 1x, ostatnio: cerrato, 2019-08-25 23:39

Pozostało 580 znaków

2019-08-25 23:28

Rejestracja: 5 lat temu

Ostatnio: 3 tygodnie temu

Lokalizacja: Warszawa

1

to chodzi ale przy ładowaniu strony z zaznaczonym wyborem to nie działa

  1. to chodzi – ?
  2. Co dokładnie nie działa? Jak się objawia to niedziałanie?

UPDATE:

<body onload="pokaz(obj);ukryj(obj);">

Ta linijka wykona funkcje pokaz oraz ukryj naraz po załadowaniu się strony UPDATE2: z nieistniejącym argumentem. Czy na pewno o to Ci chodziło, by były wykonywane naraz (tzn. nie dokładnie "naraz", ale dla użytkownika tak to będzie wyglądać)? Pytam, bo ich definicje są sobie przeciwstawne.


edytowany 3x, ostatnio: Silv, 2019-08-25 23:37

Pozostało 580 znaków

2019-08-26 08:09

Rejestracja: 1 rok temu

Ostatnio: 6 miesięcy temu

0

Niezależnie od tego co dam do <body> i w jakiej kolejności (samo <body> też nie działa) nie chce to chodzić przy wczytaniu strony, potem jak wybieram ręcznie, wszystko ładnie chodzi.
Zależy mi na tym żeby również przy wczytaniu strony ukrywało odpowiednie elementy.

edytowany 1x, ostatnio: diunida, 2019-08-26 08:10

Pozostało 580 znaków

2019-08-26 09:59

Rejestracja: 3 lata temu

Ostatnio: 7 minut temu

1

Bo powinienes uzyc CSSa i manipulowac klasami a nie stylami bezposrednio. Tj. to wykonalne i nawet nie trudne w samym jsie ale nie tedy droga

Pozostało 580 znaków

2019-08-26 11:48

Rejestracja: 5 lat temu

Ostatnio: 3 tygodnie temu

Lokalizacja: Warszawa

0

Które elementy powinny zostać ukryte przy wczytaniu strony? Obecnie z kodu to nie wynika.


Pozostało 580 znaków

2019-08-26 12:48

Rejestracja: 5 lat temu

Ostatnio: 5 godzin temu

<html>
<head>
<title>test</title>

<script type="text/javascript">
function pokaz(obj)
{
    document.getElementById(obj).style.display = '';
}
function ukryj(obj)
{
    document.getElementById(obj).style.display = 'none';
}
</script>
</head>
<body onload="ukryj('dost_reczn1');">
<select name="KRAJEW" onchange="if(this.selectedIndex > 1) { pokaz('dost_reczn1'); } else { ukryj('dost_reczn1'); } ">
<option  value="0">--Country--</option>
<option  selected value="1">Australia</option>
<option  value="2">England</option>
<option  value="3">Germany</option>
<option  value="4">USA</option>
</select><br />
<table>
<tr><td CLASS=tytul-rl>pole1</td><td id="dost_reczn1">11111</td></tr>
<tr><td CLASS=tytul-rl>pole2</td><td id="dost_reczn2">22222</td></tr>
</table>
</body>
</html>

Wiedza to potęga
edytowany 1x, ostatnio: cerrato, 2019-08-26 12:54

Pozostało 580 znaków

2019-08-26 13:04

Rejestracja: 1 rok temu

Ostatnio: 6 miesięcy temu

0

Działa, ale dla specyficznego stanu, ale jeżeli zmienię:

<option  selected value="1">Australia</option>

na:

<option selected value="3">Germany</option>

to niestety już nie działa prawidłowo :(

edytowany 1x, ostatnio: cerrato, 2019-08-26 13:10

Pozostało 580 znaków

2019-08-26 13:38

Rejestracja: 5 lat temu

Ostatnio: 5 godzin temu

1
<html>
<head>
<title>test</title>

<script type="text/javascript">
let selected;

function setSelected(obj) {
  const e = document.getElementsByName("KRAJEW")[0];
  selected = e.selectedIndex;
  document.getElementById(obj).style.display = 'none';
}

function toggle(obj)
{
  const e = document.getElementsByName("KRAJEW")[0];
  if(e.selectedIndex != selected) {
    document.getElementById(obj).style.display = '';
  } else {
    document.getElementById(obj).style.display = 'none';
  }
}
</script>
</head>
<body onload="setSelected('dost_reczn1');">
<select name="KRAJEW" onchange="toggle('dost_reczn1');">
<option  value="0">--Country--</option>
<option  value="1">Australia</option>
<option  value="2">England</option>
<option  selected value="3">Germany</option>
<option  value="4">USA</option>
</select><br />
<table>
<tr><td CLASS=tytul-rl>pole1</td><td id="dost_reczn1">11111</td></tr>
<tr><td CLASS=tytul-rl>pole2</td><td id="dost_reczn2">22222</td></tr>
</table>
</body>
</html>

Wiedza to potęga

Pozostało 580 znaków

2019-08-26 14:58

Rejestracja: 1 rok temu

Ostatnio: 6 miesięcy temu

0

Teraz ukrywa przy każdym wyborze który jest wczytany przy starcie strony niestety nie o to chodzi, ma ukrywać według konkretnych parametrów tzn. jak index większy niź.. to chowa jak jest wybrany mniejszy index to nie chowa.

Pozostało 580 znaków

2019-08-26 16:13

Rejestracja: 5 lat temu

Ostatnio: 5 godzin temu

0

Spoko to zmień sobie znak != na > i będzie git. To banalna zmiana, więc kodu nie będę po raz kolejny wklejał


Wiedza to potęga
edytowany 1x, ostatnio: Haskell, 2019-08-26 16:13

Pozostało 580 znaków

2019-08-26 17:45

Rejestracja: 1 rok temu

Ostatnio: 6 miesięcy temu

0

Zmieniłem to co mówiłeś, niestety zmieniło się tylko to że teraz wszystko powyżej zaznaczonego (włącznie z nim) są ukrywane, chodziło mi o coś z mojego pierwszego przykładu.
Żeby zachowywało się tak jak tam: przy wyborze indeksu powyżej np. 2 było ukrywane, natomiast poniżej odkryte (i to chodzi w tym moim pierwszym).
Moim problemem było to że jeżeli wczytam stronę z zadanym indeksem poniżej 2 np. 1 pole nie było ukryte (podczas wczytania strony), powinno również odkrywać pole jeżeli zadany index podczas wczytania wynosił np. 4.

Pozostało 580 znaków

Odpowiedz

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0