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

Odpowiedz Nowy wątek
2019-08-25 23:19
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
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
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
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


01010100 01110101 01110100 01100001 01101010 00100000 01101110 01101001 01100101 00100000 01101101 01100001 00100000 01101110 01101001 01100011 00100000 01100011 01101001 01100101 01101011 01100001 01110111 01100101 01100111 01101111 00101110 00100000 01001001 01100011 00100000 01110011 01110100 01101111 01101110 01110100 00101110

Pozostało 580 znaków

2019-08-26 11:48
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
<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
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
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
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
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
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
Liczba odpowiedzi na stronę

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