| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > JavaScript: Общие вопросы > Проблемы с созданием INPUT RADIO |
| Автор: Ace Wentura 16.8.2005, 13:01 | ||
| Есть задача - показывать пункты выбора при определённых условиях. То есть выбираю, скажем, из двух радио-кнопок первую - появляется дополнительный пункт меню у неё. Со второй аналогично. Создание вроде как осилил, но возникают проблемы: в IE не происходит чек - то есть нельзя сделать выбор. Просто создаётся и всё в Мозиле и Опере чек сделать можно, но на события онЧек ругается. Вот пример:
Должно происходить: по выбору первого пункта правее него появляются 2 дополнительных радиобатона. По выбору второго из них должны появляться ещё правее ещё 2 радиобатона. |
| Автор: Aliance 16.8.2005, 13:09 | ||
| Проблема в том, что ты передаешь методу appendChild() одну и ту же ноду, так делать нельзя. Если нода вставлена, то ее последующая вставка автоматически ее удаляет и вставляет в нужное место. Таким образом, пользуйся методом cloneNode() Добавлено @ 13:12
|
| Автор: Sardar 16.8.2005, 14:37 | ||||
Это возможно если у чекбоска нет имени. В ИЕ нельзя инпутам ставить имя через name/setAttribute, его личное ограничение. Фикситься через:
Да, не по стандарту... а когда ИЕ за стандартами следил...? |
| Автор: Ace Wentura 16.8.2005, 14:45 |
| Спасибо большое Буду переделывать и отлаживать |
| Автор: Ace Wentura 16.8.2005, 15:02 | ||
| Возник ещё несколько вопросов примерно по этой же теме: 1. Можно ли создать так:
2. Как лучше описать название для пункта? Через label или через текстовое поле? И как лучше сделать такое создание? |
| Автор: Aliance 16.8.2005, 15:39 |
| 1. Зачем? Просто вставляй тогда innerHTML, либо другими методами. 2. Через label, но это не в тот раздел, наверное. |
| Автор: Ace Wentura 18.8.2005, 12:00 |
| Приходится снова возвращаться к данной тематике: у меня сейчас создаётся input с именем, как посоветовал Sardar. Это замечательно работает в ИЕ. Но перестало работать в Мозиле и Опере. Что можете порекомедовать: - создавать определяя тип браузера? или - использовать какой-то единый подход для создания, но несколько отличающийся от моего? |
| Автор: Aliance 18.8.2005, 13:52 | ||
Может прибегнуть все-таки к innerHTML? |
| Автор: Ace Wentura 18.8.2005, 15:09 | ||
Я попробовал сделать так:
Но в мозиле появляется непонятная вещь - <> перед радиобатоном... Как поправить - не знаю. |
| Автор: Sardar 18.8.2005, 15:38 | ||||||||
Я же сказал:
В мозилле и опере работаем согласно спецификации DOM 1, т.е. передаём имя тега, и только в ИЕ лажу. За то что ИЕ плюёт на стандарты, ему даже некоторые бойкот устроили
Эта строчка: member1=document.createElement("<label class='main'>");Валидна только в ИЕ, а весь остальной мир плевать на неё хотел, ибо не по стандарту. Меняем:
|
| Автор: Ace Wentura 18.8.2005, 16:13 | ||
| АФФИгеть. В одной строчке поправил - всё заработало так, как было нужно.... Жуть какая-то. Спсибо и Aliance и Sardar.
|