Ver Mensaje Individual
  #2 (permalink)  
Antiguo 07/03/2014, 09:12
adm100388
 
Fecha de Ingreso: febrero-2008
Mensajes: 18
Antigüedad: 16 años, 3 meses
Puntos: 0
Respuesta: Radio Buttons dinámicos

Perdón por el doble post, pero no me dejó editar.

Les paso el código un poco más limpio que el de arriba, en el otro habían funciones que hacían lo mismo y creaciones de input sin sentido:

Código HTML:
<html> 
<head>
<title>Test</title>
<meta http-equiv="Content-Type" content="text/html;" />
<script type="text/javascript">
 
icremento = 0;

function create(obj)
{
  var unformatLinks = document.createTextNode('textArea');
  var radioButtonText1 = document.createTextNode('Link');
  var radioButtonText2 = document.createTextNode('Mirror');
  var radioButtonText3 = document.createTextNode('Alternative');
  icremento++;

  downloads = document.getElementById('downloads');
  bundle = document.createElement('div');
  bundle.id = 'div'+icremento;
  downloads.appendChild(bundle);
 
  //Creo el textBox
  button = document.createElement('input');
  button.type = 'text';
  button.name = 'buttonTitle'+'[]';
  button.size = '80';
  
  //Creo el textArea
  textArea = document.createElement('textarea');
  textArea.type = 'textarea';
  textArea.name = 'unformatLinks'+'[]';
  textArea.cols = '65';
  textArea.rows = '5';
  
  //Creo opción direct del radioButton
  radioButton1 = document.createElement('input');
  radioButton1.type = 'radio';
  radioButton1.name = 'radio'+icremento;
  radioButton1.value = 'Direct';
  
  //Creo opción mirror del radioButton
  radioButton2 = document.createElement('input');
  radioButton2.type = 'radio';
  radioButton2.name = 'radio'+icremento;
  radioButton2.value = 'Mirror';
  
  //Creo opción alternative del radioButton
  radioButton3 = document.createElement('input');
  radioButton3.type = 'radio';
  radioButton3.name = 'radio'+icremento;
  radioButton3.value = 'Alternative';
  
  //Creo textbox download
  buttonDownload = document.createElement('input');
  buttonDownload.type = 'text';
  buttonDownload.name = 'div'+icremento;
  buttonDownload.size = '10';
  buttonDownload.id = 0;
  
  //Creo textbox mirror
  buttonMirror = document.createElement('input');
  buttonMirror.type = 'text';
  buttonMirror.name = 'div'+icremento;
  buttonMirror.size = '20';
  buttonMirror.id = 0;
  
  //Creo textbox alternative
  buttonAlternative = document.createElement('input');
  buttonAlternative.type = 'text';
  buttonAlternative.name = 'div'+icremento;
  buttonAlternative.size = '30';
  buttonAlternative.id = 0;
  
  bundle.textContent = "Título: ";
  bundle.appendChild(button);
  bundle.appendChild(document.createElement('br'));
  bundle.appendChild(document.createElement('br'));
  bundle.appendChild(unformatLinks);
  bundle.appendChild(document.createElement('br'));
  bundle.appendChild(document.createElement('br'));
  bundle.appendChild(textArea);
  bundle.appendChild(document.createElement('br'));
  bundle.appendChild(document.createElement('br'));
  bundle.appendChild(radioButtonText1);
  bundle.appendChild(radioButton1);
  bundle.appendChild(radioButtonText2);
  bundle.appendChild(radioButton2);
  bundle.appendChild(radioButtonText3);
  bundle.appendChild(radioButton3);
  bundle.appendChild(document.createElement('br'));
  bundle.appendChild(document.createElement('br'));
  radioButton1.checked = true;
  radioCheck(bundle, buttonDownload, buttonMirror, buttonAlternative)
  
  radioButton1.onclick = function(){radioCheck(bundle, buttonDownload, buttonMirror, buttonAlternative)}
  radioButton2.onclick = function(){radioCheck(bundle, buttonDownload, buttonMirror, buttonAlternative)}
  radioButton3.onclick = function(){radioCheck(bundle, buttonDownload, buttonMirror, buttonAlternative)}
}

function radioCheck(bundle, buttonDownload, buttonMirror, buttonAlternative)
{	
	if(radioButton1.checked == true)
	{
		console.log("radioButton1 = true");
		createOrRemove(bundle,buttonDownload,"remove");
		createOrRemove(bundle,buttonMirror,"remove");
		createOrRemove(bundle,buttonAlternative,"remove");
		createOrRemove(bundle,buttonDownload,"create");
	}
	  
	if(radioButton2.checked == true)
	{
		console.log("radioButton2 = true");
		createOrRemove(bundle,buttonMirror,"remove");
		createOrRemove(bundle,buttonDownload,"remove");
		createOrRemove(bundle,buttonAlternative,"remove");
		createOrRemove(bundle,buttonMirror,"create");
	}
	  
	if(radioButton3.checked == true)
	{
		console.log("radioButton3 = true");
		createOrRemove(bundle,buttonAlternative,"remove");
		createOrRemove(bundle,buttonDownload,"remove");
		createOrRemove(bundle,buttonMirror,"remove");
		createOrRemove(bundle,buttonAlternative,"create");
	}
}

function createOrRemove(bundleParam,elem,createOrRemove)
{	
	if(createOrRemove == "create")
	{
		elem.id = 1;
		bundleParam.appendChild(elem);
		console.log("Crea textbox");
	}
	else
	{
		if(elem.id == 1)
		{
			bundleParam.removeChild(elem);
			elem.id = 0;
			console.log("Borra textbox");
		}
	}
}

function transform()
{
	var imageMain = document.form.imageMain.value;
	//document.write(imageMain);
	var preview = document.form.preview.value;
	//document.write(preview);
	var review = document.form.review.value;
	//document.write(imageMain + "</br>" + preview + "</br>" + review);
}

</script>
</head>
<body>
	<font face="calibri">
		<form name="form">
		<fieldset id="downloads" style="width:638px"></br>
			<input type="button" value="Agregar" onclick="create(this)"></br></br>
		</fieldset>
		</br>
		<input type=button value="Aceptar" onclick="transform()">
		</form> 
	</font>
</body>
</html> 
De todas formas, sigue pasando lo mismo.