Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: uaktywnienie <select> radiobuttonem
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
vojtasek
Witam napisałem takie coś:
plik index.php
  1. <div>
  2. <form name="aradio">
  3.  
  4. <input name="aoption" value="activ" onClick="assen()" type="radio">Stahl</br>
  5. <select name="option" disabled="disabled">
  6. <option>150</option>
  7. <option>200</option>
  8. <option>250</option>
  9. <option>170</option>
  10. <option>300</option>
  11. <option>350</option>
  12. <option>400</option>
  13. <option>500</option>
  14. <option>700</option>
  15. </select></br>
  16. </form></div>


i funkcję:
  1. function assen()
  2. {
  3. document.forms[0].option.disabled=false;
  4. document.forms[0].option.value="";
  5. for(var i=0;i<document.forms[0].elements.length;i++)
  6. {
  7. if(document.forms[0].elements[i].value=="activ")
  8. {
  9. if(document.forms[0].elements[i].checked==true){
  10. document.forms[0].option.disabled=false;
  11. }
  12. }
  13. }
  14. }


problem jest taki że mi to nie działa a do tego forma w div chciałbym dodać jeszcze 2 możliwości uaktywniania <select>

ma to działać tak że jak wybiorę Stahl czyli radio stanie się zaznaczony uaktywni <select> bym mógł wybrać z niego wartość.

Grupa radio będzie sztuk 3 i każdy radio będzie miał <select>.
mortus
A nie łatwiej tak:
  1. <form action="" method="post">
  2. <p><input type="radio" name="aoption" value="option" onchange="activate(this); return false;" />Stah1</p>
  3. <p>
  4. <select id="option" name="option" disabled="disabled">
  5. <!-- options -->
  6. </select>
  7. </p>
  8. </form>
  9. <script type="text/javascript">
  10. function activate(element) {
  11. if(element.checked) document.getElementById(element.value).disabled = "";
  12. }

Tylko pamiętaj, że pole typu radio jest zaznaczone zawsze, jeśli już raz je zaznaczysz. No chyba, że masz kilka pól radio o tej samej nazwie.
askone
Ewentualnie spróbuj coś takiego link

edit
Cytat(mortus @ 7.09.2011, 12:11:15 ) *
A nie łatwiej tak:
  1. <form action="" method="post">
  2. <p><input type="radio" name="aoption" value="option" onchange="activate(this); return false;" />Stah1</p>
  3. <p>
  4. <select id="option" name="option" disabled="disabled">
  5. <!-- options -->
  6. </select>
  7. </p>
  8. </form>
  9. <script type="text/javascript">
  10. function activate(element) {
  11. if(element.checked) document.getElementById(element.value).disabled = "";
  12. }

Tylko pamiętaj, że pole typu radio jest zaznaczone zawsze, jeśli już raz je zaznaczysz. No chyba, że masz kilka pól radio o tej samej nazwie.


Wydaje mi się, że w Twoim przykładzie this będzie odwoływało się do elementu window, a nie do elementu input... Aby this odwoływało się prawidłowo funkcja obsługująca zdarzenie onchange musiałaby zostać podpięta poprzez input.onchange = activate();

Pozdrawiam
mortus
@askone Źle Ci się wydaje smile.gif
askone
Cytat(mortus @ 7.09.2011, 20:32:05 ) *
@askone Źle Ci się wydaje smile.gif


Faktycznie coś mi się pomieszało smile.gif - Zresztą sam z tego korzystam....
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.