За последние 24 часа нас посетили 17378 программистов и 1694 робота. Сейчас ищут 1730 программистов ...

Подскажите скрипт для checkbox-a

Тема в разделе "JavaScript и AJAX", создана пользователем AmiD, 29 янв 2007.

  1. AmiD

    AmiD Активный пользователь

    С нами с:
    16 янв 2007
    Сообщения:
    99
    Симпатии:
    0
    Адрес:
    Томсква
    Проблема такая: есть форма, на ней есть 18 чекбоксов и соответствующие им textfield. Нужно при выключении чекбокса выключать и соотв. текстовое поле. (в дельфи это было свойство .enabled) а как на яваскрипте реализовать?
     
  2. Psih

    Psih Активный пользователь
    Команда форума Модератор

    С нами с:
    28 дек 2006
    Сообщения:
    2.678
    Симпатии:
    6
    Адрес:
    Рига, Латвия
    Код (Text):
    1. select_all_status = true;
    2. function select_all(elements_name){
    3.  
    4.     var el = document.getElementsByName(elements_name);
    5.  
    6.     for (i = 0; i< el.length; i++){
    7.         el[i].checked = select_all_status;
    8.     }
    9.     select_all_status = !select_all_status;
    10. }
    У всех checkbox'ов должно быть одно имя, value соответственно разные :)
     
  3. AmiD

    AmiD Активный пользователь

    С нами с:
    16 янв 2007
    Сообщения:
    99
    Симпатии:
    0
    Адрес:
    Томсква
    а где тут textarea ? Я в яваскрипте нибумбум :)
     
  4. Psih

    Psih Активный пользователь
    Команда форума Модератор

    С нами с:
    28 дек 2006
    Сообщения:
    2.678
    Симпатии:
    6
    Адрес:
    Рига, Латвия
    А.. это что бы все чекбоксы отметить или снять :)

    А вообще document.getElementById('id').enabled = true/false;

    Работает для всех input/button/textarea
     
  5. AmiD

    AmiD Активный пользователь

    С нами с:
    16 янв 2007
    Сообщения:
    99
    Симпатии:
    0
    Адрес:
    Томсква
    то есть if checkbox1.checked=true {document.textarea1.enabled= true};
    и if checkbox1.checked=false {document.textarea1.enabled= falce};
     
  6. pel

    pel Активный пользователь

    С нами с:
    19 янв 2007
    Сообщения:
    569
    Симпатии:
    0
    Адрес:
    Симферополь
    В принципе, так. Только надо еще к событию привязать. Типа:
    Код (Text):
    1. <input type=checkbox id=chkbox1 onClick="document.textarea1.enabled = document.chkbox1.checked">
    или даже вот так попробуйте... Не уверен, но проверить сейчас не могу...
    Код (Text):
    1. <input type=checkbox id=chkbox1 onClick="document.textarea1.enabled = this.checked">
    2 Psih: а обязательно использовать getElementsById? Как в примере выше тоже работает же ж... :-?
     
  7. AmiD

    AmiD Активный пользователь

    С нами с:
    16 янв 2007
    Сообщения:
    99
    Симпатии:
    0
    Адрес:
    Томсква
    Воо.. сам допер...
    Если кому нужно код:
    Код (Text):
    1.  
    2. <form name="foo" action="" method="post">
    3. <input name="tok1" type="checkbox" value="ON" onclick="check1();">
    4. <input name="tok2" type="text" value="" onclick="">
    5. <SCRIPT LANGUAGE="JavaScript">
    6. function check1() {
    7. if (eval("document.foo.tok1.checked") == true) {
    8. document.foo.tok2.disabled = false;
    9. }
    10. else {
    11.     document.foo.tok2.disabled = true;
    12.     }
    13. }
    14. </script>
    15. </form>
     
  8. Psih

    Psih Активный пользователь
    Команда форума Модератор

    С нами с:
    28 дек 2006
    Сообщения:
    2.678
    Симпатии:
    6
    Адрес:
    Рига, Латвия
    Работает конечно, но это устаревший способ. К тому же getElementById 100% совместим со всеми браузерами (это чаcть DOM была, не?) да и просто удобнее :)