За последние 24 часа нас посетили 16795 программистов и 1644 робота. Сейчас ищут 909 программистов ...

Ошибка в написании простой функции. Не могу найти

Тема в разделе "JavaScript и AJAX", создана пользователем dr-jazz, 15 ноя 2010.

  1. dr-jazz

    dr-jazz Активный пользователь

    С нами с:
    15 ноя 2010
    Сообщения:
    3
    Симпатии:
    0
    Всем привет
    Пытаюсь изучать JavaScript. Начал писать функцию и где-то налажал...
    Помогите, плиз, разобраться где...

    HTML:
    1.  
    2. <script language="JavaScript" type="text/javascript">
    3. <!--
    4.  
    5. function change_state(checkboxname, ord_num)
    6. {
    7.    var current_checkbox = document.getElementById(checkboxname)
    8.    if (current_checkbox.checked)
    9.    {
    10.        var current_tiresfield = "ord_tires_" + ord_num
    11.        alert (current_tiresfield) // Тут я вижу, что current_tiresfield получила значение ord_tires_1
    12.        current_tiresfield = document.getElementById(current_tiresfield)
    13.        current_tiresfield.readonly = "false"
    14.        
    15.    }
    16.    else
    17.    {
    18.    ...
    19.    }
    20. }
    21.  
    22. -->
    23.     </script>
    24.     <tr>
    25.         <td><input readonly type="text" name="ord_num_1" size="10" maxlength="10" value="1"></td>
    26.         <td><input readonly type="text" name="ord_tires_1" size="10" maxlength="10" value="11"></td>
    27.         <td><input readonly type="text" name="ord_oil_1" size="10" maxlength="10" value="22"></td>
    28.  
    29.         <td><input readonly type="text" name="ord_spark_1" size="10" maxlength="10" value="33"></td>
    30.         <td><input readonly type="text" name="ord_date_1" size="10" maxlength="10" value="2010-11-07"></td>
    31.         <td><input type="checkbox" id="check_1" onchange="change_state('check_1', 1)"></td>
    32.     </tr>
    33.  
    alert у меня для того, чтобы увидеть некоторые шаги выполнения скрипта.
    Он то как раз и сообщает мне о том, что переменной current_tiresfield присвоилось значение ord_tires_1 при нажатии на соответствующую кнопку.
    Но при этом консоль ошибок Firefox мне сообщает: Ошибка: current_tiresfield is null
    И соответственно, я не могу получить доступ к текстовому полю ord_tires_1 и сделать его readonly = "false"
    Заранее благодарен :)
     
  2. Padaboo

    Padaboo Старожил
    Команда форума Модератор

    С нами с:
    26 окт 2009
    Сообщения:
    5.242
    Симпатии:
    1
    ты ищешь по id я тут не вижу элемента с id="ord_tires_1"
     
  3. dr-jazz

    dr-jazz Активный пользователь

    С нами с:
    15 ноя 2010
    Сообщения:
    3
    Симпатии:
    0
    Спасибо!
    Действительно, лохонулся... :oops: :oops:

    HTML:
    1. <script language="JavaScript" type="text/javascript">
    2. <!--
    3.  
    4. function change_state(checkboxname, ord_num)
    5. {
    6.    var current_checkbox = document.getElementById(checkboxname)
    7.    if (current_checkbox.checked)
    8.    {
    9.        var current_tiresfield = "ord_tires_" + ord_num
    10.        alert (current_tiresfield)
    11.        document.getElementById(current_tiresfield)
    12.        current_tiresfield.readOnly = false
    13.        
    14.    }
    15.    else
    16.    {
    17.    ...
    18.    }
    19. }
    20.  
    21. -->
    22.     </script>
    23.     <tr>
    24.         <td><input readonly type="text" id="ord_num_1" size="10" maxlength="10" value="1"></td>
    25.         <td><input readonly type="text" id="ord_tires_1" size="10" maxlength="10" value="11"></td>
    26.         <td><input readonly type="text" id="ord_oil_1" size="10" maxlength="10" value="22"></td>
    27.  
    28.         <td><input readonly type="text" id="ord_spark_1" size="10" maxlength="10" value="33"></td>
    29.         <td><input readonly type="text" id="ord_date_1" size="10" maxlength="10" value="2010-11-07"></td>
    30.         <td><input type="checkbox" id="check_1" onchange="change_state('check_1', 1)"></td>
    31.     </tr>

    Но возникла новая проблема... ord_tires_1 не перестает быть readonly
    Хотя document.getElementById(current_tiresfield).readonly = false
    В чем тут ошибка?
     
  4. Padaboo

    Padaboo Старожил
    Команда форума Модератор

    С нами с:
    26 окт 2009
    Сообщения:
    5.242
    Симпатии:
    1
    removeAttribute('readOnly')
     
  5. dr-jazz

    dr-jazz Активный пользователь

    С нами с:
    15 ноя 2010
    Сообщения:
    3
    Симпатии:
    0
    Padaboo
    Спасибо тебе большое! Намного стало яснее...