Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Общие вопросы > Не рисуется точка в radio кнопке при клике


Автор: arbuzzz 15.8.2007, 10:12
Случился какой-то непонятный глюк. Ситуация следующая: есть форма. На ней динамически создаются всяческие элементы управления. Один из элементов  - <input type='radio'>
Так вот после того как он создан, в Internet Explorer'е почему-то не прорисовывается черная точка при клике на него. Сам клик обрабатывается правильно, значение на сервер уходит верное и в других браузерах все выглядит нормально.
Вот код создания элемента. Сохдается их несколько и они помещаются в одну ячейку.
Код

                    case 'radio':
                     var     e = newEl("input");
                        e.type = 'radio';
                     e.name = req.responseJS.q[i].name;
                     e.value = req.responseJS.q[i].value;
                     e.id = req.responseJS.q[i].id;
                     e.className = 'input_r';
                     label = document.createTextNode(req.responseJS.q[i].text);
                     
                     
                     if(req.responseJS.q[i].check == '1'){
                         e.checked = 'checked';
                     }
                     e.cssText = "border:none;";
                     var oTd = newEl('td');
                     
                     if(!getEl('par_'+req.responseJS.q[i].id)){
                         var par_rad_td = tr.appendChild(oTd);
                         par_rad_td.id = 'par_'+req.responseJS.q[i].id;
                     }
                     else{
                         par_rad_td = getEl('par_'+req.responseJS.q[i].id);
                     }
                        
                     if(!getEl('m_block_'+req.responseJS.q[i].id)){
                         var m_block = newEl('div');
                         m_block.id='m_block_'+req.responseJS.q[i].id;
                     }
                     else{
                         m_block = getEl('m_block_'+req.responseJS.q[i].id);
                     }
                                            
                        var oBlock = newEl('div');                            // Создаем div
                        oBlock.id='edit_block';                                // присваиваем ему ID 
                        oBlock.appendChild(e);                    // и помещаем в него элемент управления
                        oBlock.appendChild(label);
                    
                        var oCommentBlock = newEl('div');                    //Создаем div в который будет помещаться
                        oCommentBlock.id='edit_comment';
                        oCommentBlock.className = "comment";                // коментарий к элементу
                        oCommentBlock.innerHTML = req.responseJS.q[i].comment;        // Добавляем комментарий
                                                                    
                        m_block.appendChild(oBlock);                        // Добавляем к главному div блок с элементом управления
                                            
                        par_rad_td.appendChild(m_block);                    // Добавляем главный div в ячейку
                        par_rad_td.appendChild(oCommentBlock);                // Добавляем к главному div блок с комментарием
                     addEvent(e,'click',req.responseJS.q[i].reg_exp,req.responseJS.q[i].sub_load);
                        break;
                    case 'multi_select':
                        if(req.responseJS.q[i].enabled == ''){                                // Проверка на активность элемента
                         aFull.splice(aFull.length,0,req.responseJS.q[i].id);            // Массив заполненности формы
                     }
                     select = create_block('select',req.responseJS.q[i],true);
                     break;



req.responseJS.q - объект, получается с серевера с через ajax библиотеку.
Вот так выглядят элементы после создания
Код

<input type="radio" name="OPHR_type" value="OPHR" id="OPHR_type" class="input_r"/>
<input type="radio" name="OPHR_type" value="t_name_level_1" id="OPHR_type" class="input_r"/>

Автор: Mushu 17.8.2007, 11:54
Решил
Код

<HTML>
<HEAD>
<script>
function createRadioButton(){
    // Create radio button object with value="First Choice" and then insert 
    // this element into the document hierarchy.
    var newRadioButton = document.createElement("<INPUT TYPE='RADIO' NAME='RADIOTEST' VALUE='First Choice'>")
    document.body.insertBefore(newRadioButton);
    // Create radio button object with value="Second Choice" and then insert 
    // this element into the document hierarchy. 
    newRadioButton = document.createElement("<INPUT TYPE='RADIO' NAME='RADIOTEST' VALUE='Second Choice'>")
    document.body.insertBefore(newRadioButton);
}
</SCRIPT>
</HEAD>

<BODY>
<INPUT TYPE="BUTTON" ONCLICK="createRadioButton()" VALUE="Create two Radio Buttons"><BR>

<INPUT TYPE="BUTTON" ONCLICK="alert ( document.body.outerHTML )" VALUE="Click here to see HTML">

<BODY>
</HTML>

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)