jquery - the - Problema del botón de radio IE7 cuando se crea dinámicamente
select onchange jquery value (2)
IE7 tiene problemas con los botones de radio creados dinámicamente, lo cual es extraño porque es un navegador tan sorprendente. Parece que IE7 no le permitirá cambiar el name
atributo de name
de los botones de opción.
Aquí hay una posible solución.
Tengo un problema en IE7 cuando estoy creando clones de botones de radio. Estoy actualizando dinámicamente el nombre y los atributos de ID, sin embargo, sigo teniendo el problema de que, al marcar un botón de opción, se restablecen los que se crearon dinámicamente. ¿Alguna idea de cómo esto puede arreglarse? Aquí hay un violín del problema
Este es el código JS que manipula los campos del formulario:
// Dropdown select
$(''#quantity'').live("change", function(){
$(''.questions_clonable:not(.questions_clonable:first)'').remove();
// Get value of selection
var num = $(this).val();
var cloned_el = $(''.questions_clonable'').clone();
if (num > 1)
{
for (var i = 1; i < num; i++)
{
// Assign cloned block to new var
var new_block = cloned_el;
// Store previous number for replacing with current in cloned block input fields
var prev = i-1;
// Update input name to make it unique
new_block.find(''input'').each(function() {
this.name = this.name.replace(prev, i);
this.id = this.id + i;
});
// Bit of a workaround needed to clone properly, reiterating class name
$(''.multiple_questions_container'').append(''<span class="questions_clonable hidden">''+new_block.html()+''</span>'');
}
}
});
Encontré varias soluciones posibles para esto, pero las siguientes funcionaron perfectamente:
function setElementName(elems, name) {
if ($.browser.msie === true){
$(elems).each(function() {
this.mergeAttributes(document.createElement("<input name=''" + name + "''/>"), false);
});
} else {
$(elems).attr(''name'', name);
}
}