Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [html/js] Select, value, disabled
Pride
post 16.09.2007, 19:58:13
Post #1





Grupa: Zarejestrowani
Postów: 139
Pomógł: 11
Dołączył: 31.01.2005
Skąd: Bydgoszcz

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


Witam.
Szukam sposobu jak przy wybraniu czegos w [select] <input> byl disabled='disabled'
Przykładowo:
  1. <select name='taklubnie'>
  2. <option value='yes'>yes</option>
  3. <option value='no'>no</option>

Jeżeli wybiore z tego np. YES to:
  1. <input type='text' size='30' name='nazwa' disabled='disabled' />

jeżeli NO to:
  1. <input type='text' size='30' name='nazwa' />


Wiem, ze cos takiego na 99% istnieje bo gdzies juz to stosowalem (tak mi sie przynajmniej wydaje). Jednak nie moge tego znaleźc na dysku ani w internecie tongue.gif
Z gory THX za pomoc.


--------------------
Kto pyta - nie błądzi, kto szuka - znajduje.
Go to the top of the page
+Quote Post
ARJ
post 16.09.2007, 20:11:08
Post #2





Grupa: Zarejestrowani
Postów: 453
Pomógł: 22
Dołączył: 20.09.2004
Skąd: Kraków - NH -

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


Kod
function disable(){
document.getElementById("nazwa").setAttribute("disabled","disabled");
}

wywołanie:
  1. <option value='yes' onclick="disable();">yes</option>


funkcję możesz rozbudować o if`a który będzie sprawdzał czy input jest zablokowany czy nie i odpowiednio go blokował lub odblokowywał.


--------------------
Warsztat: Windows 7 Pro 64bit | Apache 2.2 | PHP 5.2 | MySQL 5.0 | PHPmyadmin 2.6.4
Go to the top of the page
+Quote Post
Istalacar
post 16.09.2007, 20:12:16
Post #3





Grupa: Zarejestrowani
Postów: 108
Pomógł: 4
Dołączył: 3.03.2007

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


O ile dobrze pamiętam trzeba użyć albo onClick, albo onFocus i odnieść to do funkcji która aktywuje i zdezaktywuje pole
Go to the top of the page
+Quote Post
Cienki1980
post 16.09.2007, 20:15:08
Post #4





Grupa: Przyjaciele php.pl
Postów: 1 590
Pomógł: 40
Dołączył: 11.01.2007
Skąd: Centrum

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


A ja w przypadku selecta radziłbym wykorzystać onChange() zamiast onClick ... dlaczego ? A no bo selecta można obsługiwać z klawiatury ( wystarczy nadać focus i używać strzałek ) - a tego onClick już chyba nie wyłapie ...


--------------------
404
Go to the top of the page
+Quote Post
Pride
post 19.09.2007, 10:25:48
Post #5





Grupa: Zarejestrowani
Postów: 139
Pomógł: 11
Dołączył: 31.01.2005
Skąd: Bydgoszcz

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


No mam już jakieś podpowiedzi to.... google do boju tongue.gif Bo jak juz mowilem (a moze i nie mówiłem...) to JS nie znam kompletnie haha.gif Nawet tego warunku nie wiem jak napisac tongue.gif ale poszukam ;P Moze cos znajde ^.^

EDIT

No coś napisałem ale niestety nie działa....:
  1. <script type="text/javascript">
  2. function disable(){
  3. if(document.getElementById('nazwa').value==yes)document.getElementById('text1').disabled=false;
  4. else document.getElementById('text1').disabled=true;
  5. }
  6. <select name='nazwa'>
  7. <option>-- wybierz z listy --</option>
  8. <option onchange="disable()" value='yes'>Wymagaj</option>
  9. <option value='no'>Nie wymagaj</option>
  10. <input disabled name="text1" type="text">

Nie wiem już jak to napisac tongue.gif Jakies pomysły? snitch.gif
Pozdrawiam

Ten post edytował Pride 19.09.2007, 10:26:28


--------------------
Kto pyta - nie błądzi, kto szuka - znajduje.
Go to the top of the page
+Quote Post
Istalacar
post 19.09.2007, 14:05:51
Post #6





Grupa: Zarejestrowani
Postów: 108
Pomógł: 4
Dołączył: 3.03.2007

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


Zamiast name użyj id:)

<input disabled name="text1" type="text">
Zamień na:
<input disabled id="text1" type="text">

Ten post edytował Istalacar 19.09.2007, 14:06:36
Go to the top of the page
+Quote Post
Pride
post 19.09.2007, 14:49:48
Post #7





Grupa: Zarejestrowani
Postów: 139
Pomógł: 11
Dołączył: 31.01.2005
Skąd: Bydgoszcz

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


Cytat(Istalacar @ 19.09.2007, 15:05:51 ) *
Zamiast name użyj id:)

<input disabled name="text1" type="text">
Zamień na:
<input disabled id="text1" type="text">

Też nie działa... >.>


--------------------
Kto pyta - nie błądzi, kto szuka - znajduje.
Go to the top of the page
+Quote Post
qqrq
post 19.09.2007, 15:10:44
Post #8





Grupa: Zarejestrowani
Postów: 418
Pomógł: 8
Dołączył: 16.11.2006

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


OnChange powinno być w select'ie, nie w option:

  1. <select name='nazwa' onchange="disable()">
  2. <option>-- wybierz z listy --</option>
  3. <option value='yes'>Wymagaj</option>
  4. <option value='no'>Nie wymagaj</option>


--------------------
Go to the top of the page
+Quote Post
Pride
post 19.09.2007, 15:20:28
Post #9





Grupa: Zarejestrowani
Postów: 139
Pomógł: 11
Dołączył: 31.01.2005
Skąd: Bydgoszcz

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


Cytat(qqrq @ 19.09.2007, 16:10:44 ) *
OnChange powinno być w select'ie, nie w option:

  1. <select name='nazwa' onchange="disable()">
  2. <option>-- wybierz z listy --</option>
  3. <option value='yes'>Wymagaj</option>
  4. <option value='no'>Nie wymagaj</option>

także nie pomogło.
Nie mam już pomysłów na to... Jest ktoś tutaj kto umiał by mi to jakoś poprawnie napisać? Bo sam nie dam chyba rady.


--------------------
Kto pyta - nie błądzi, kto szuka - znajduje.
Go to the top of the page
+Quote Post
qqrq
post 19.09.2007, 15:29:42
Post #10





Grupa: Zarejestrowani
Postów: 418
Pomógł: 8
Dołączył: 16.11.2006

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


A no tak, jeszcze jedno:

  1. <script type="text/javascript">
  2. function disable(){
  3. if(document.getElementById('nazwa').options[document.getElementById('nazwa').selectedIndex] =='yes')document.getElementById('text1').disabled=false;
  4. else document.getElementById('text1').disabled=true;
  5. }


--------------------
Go to the top of the page
+Quote Post
Istalacar
post 19.09.2007, 16:20:57
Post #11





Grupa: Zarejestrowani
Postów: 108
Pomógł: 4
Dołączył: 3.03.2007

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


I jeszcze raz, nie zwróciłem uwagi, w select też trzeba "name" na "id" zmienić.
Go to the top of the page
+Quote Post
Pride
post 19.09.2007, 17:45:09
Post #12





Grupa: Zarejestrowani
Postów: 139
Pomógł: 11
Dołączył: 31.01.2005
Skąd: Bydgoszcz

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


Z tego co zrozumiałem, ma to wyglądac tak:
  1. <head>
  2. <script type="text/javascript">
  3. function disable(){
  4. if(document.getElementById('nazwa').options[document.getElementById('nazwa').selectedIndex] =='yes')document.getElementById('text1').disabled=false;
  5. else document.getElementById('text1').disabled=true;
  6. }
  7. </script>
  8. </head>
  9. <body>
  10. <select id='nazwa' onchange="disable()">
  11. <option>-- wybierz z listy --</option>
  12. <option value='yes'>Wymagaj</option>
  13. <option value='no'>Nie wymagaj</option>
  14. </select>
  15. <input disabled id="text1" type="text">
  16. </body>
  17. </html>

Jednak jak zawsze... nie działa sadsmiley02.gif sciana.gif


--------------------
Kto pyta - nie błądzi, kto szuka - znajduje.
Go to the top of the page
+Quote Post
Istalacar
post 19.09.2007, 19:07:18
Post #13





Grupa: Zarejestrowani
Postów: 108
Pomógł: 4
Dołączył: 3.03.2007

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


  1. <head>
  2. <script type="text/javascript">
  3. function disable(){
  4. if(document.getElementById('nazwa').options[document.getElementById('nazwa').selectedIndex].value =='yes')document.getElementById('text1').disabled=false;
  5. else document.getElementById('text1').disabled=true;
  6. }
  7. </script>
  8. </head>
  9. <body>
  10. <select id='nazwa' onchange="disable()">
  11. <option>-- wybierz z listy --</option>
  12. <option value='yes'>Wymagaj</option>
  13. <option value='no'>Nie wymagaj</option>
  14. </select>
  15. <input disabled id="text1" type="text">
  16. </body>
  17. </html>


Być może to value będzie tu kluczowe:)

Edit:
właśnie sprawdziłem ten skrypt i działa:)
W ramach sugestii możesz jeszcze podczas blokowania wyczyścić to pole co będzie w else wyglądało tak:
  1. else
  2. {
  3. document.getElementById('text1').value='';
  4. document.getElementById('text1').disabled=true;
  5. }


Ten post edytował Istalacar 19.09.2007, 19:31:13
Go to the top of the page
+Quote Post
Pride
post 19.09.2007, 19:23:39
Post #14





Grupa: Zarejestrowani
Postów: 139
Pomógł: 11
Dołączył: 31.01.2005
Skąd: Bydgoszcz

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


  1. function disable(){
  2. document.getElementById('text1').disabled=document.getElementById('nazwa').value!='yes'
  3. }

i jest good ^.^


--------------------
Kto pyta - nie błądzi, kto szuka - znajduje.
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 Wersja Lo-Fi Aktualny czas: 14.06.2025 - 10:04