Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Загадочная проблема с checkbox/textbox 
:(
    Опции темы
Bikutoru
Дата 13.10.2005, 11:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Увлекающийся
**


Профиль
Группа: Участник
Сообщений: 522
Регистрация: 24.5.2005
Где: Москва

Репутация: нет
Всего: 22



Здраствуйте. У меня есть форма, состоящая из набота пар полей ввода (checkbox + textbox). Идея в том, что в текстовое поле можно вводить информацию только тогда, когда стоит галочка в соответствующем ему чекбоксе. Если же галка не стоит, то нужно не давать пользователю вводить какой-либо текст.
Вот HTML-код:
Код

 <tr>
  <td>
   <input type="checkbox" id="usecat5" name="UseCat[5]" onChange="changeLabelStatus(5); ">&nbsp;<span id="label5">Чехлы</span>
  </td>
  <td>
   <input type="text" id="textcat5" name="XmlCat[5]" style="width: 50px; height: 20px; font-family: serif; font-size: 12;" value="" onFocus="changeTextFocus(5)">
  </td>

 </tr> <tr>
  <td>
   <input type="checkbox" id="usecat8" name="UseCat[8]" onChange="changeLabelStatus(8); ">&nbsp;<span id="label8">Аккумуляторы</span>
  </td>
  <td>
   <input type="text" id="textcat8" name="XmlCat[8]" style="width: 50px; height: 20px; font-family: serif; font-size: 12;" value="" onFocus="changeTextFocus(8)">
  </td>
 </tr>


Вот сами функции.
Код

    function changeLabelStatus(id) {
        if (!document.getElementById)
            return;

        var check = document.getElementById('usecat' + id);
        var label = document.getElementById('label' + id);
        var text  = document.getElementById('textcat' + id);
        if (!check || !label || !text)
            return;

        label.style.fontWeight = check.checked? 'bold': 'normal';
        if (!check.checked)
            text.value = '';
    }

    function changeTextFocus(id) {
        if (!document.getElementById)
            return;

        var check = document.getElementById('usecat' + id);
        var text  = document.getElementById('textcat' + id);
        if (!check || !text)
            return;

        if (check.checked)
            return;

        text.blur();
    } //Строка 414 здесь


Проблема в том, что Firefox 1.0.7 постоянно ругается, когда галка не стоит. Если она установлена, то никаких проблем нет. Вот текст ошибки:
Цитата
Ошибка: [Exception... "'0?@5I5=> ?>;CG0BL A2>9AB2>: XULElement.selectedIndex' when calling method: [nsIAutoCompletePopup::selectedIndex]"  nsresult: "0x8057001e (NS_ERROR_XPC_JS_THREW_STRING)"  location: "JS frame :: http://vz.sota1.ru/accessories/clients/add_acces_xml.php3 :: changeTextFocus :: line 414"  data: no]
Источник: http://vz.sota1.ru/accessories/clients/add_acces_xml.php3
Строка: 414

У меня нет совсем никаких догадок. Подскажите, в чем может быть проблема...

Это сообщение отредактировал(а) Bikutoru - 13.10.2005, 11:14


--------------------
Человек, словно в зеркале мир — многолик, 
Он ничтожен — и он же безмерно велик!
Омар Хайям
PM   Вверх
Aliance
Дата 13.10.2005, 14:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I ♥ <script>
****


Профиль
Группа: Модератор
Сообщений: 6418
Регистрация: 2.8.2004
Где: spb

Репутация: 55
Всего: 137



У меня такое ощущение, что это не весь код. Дай линк на полный код JS smile
PM MAIL WWW ICQ Skype   Вверх
Sardar
Дата 13.10.2005, 15:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 78
Всего: 317



Bikutoru зачем так криво отключать текстовые поля через насильную потерю фокуса? Не проще ли в changeLabelStatus заменить:
Код
 if (!check.checked)
            text.value = '';

на
Код
if (!check.checked) text.value = '';
text.disabled=!check.checked;


Отлов фокуса на текстовом поле убери.


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
Bikutoru
Дата 14.10.2005, 10:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Увлекающийся
**


Профиль
Группа: Участник
Сообщений: 522
Регистрация: 24.5.2005
Где: Москва

Репутация: нет
Всего: 22



Цитата(Aliance @ 13.10.2005, 15:36)
У меня такое ощущение, что это не весь код

Твои ощущения тебя обманули.

Цитата(Sardar @ 13.10.2005, 16:43)
Bikutoru зачем так криво отключать текстовые поля через насильную потерю фокуса? Не проще ли в changeLabelStatus заменить

Действительно проще. Перемудрил, бывает. Большое спасибо.



--------------------
Человек, словно в зеркале мир — многолик, 
Он ничтожен — и он же безмерно велик!
Омар Хайям
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0484 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.