Ver Mensaje Individual
  #1 (permalink)  
Antiguo 13/01/2011, 10:44
Avatar de spicke23
spicke23
 
Fecha de Ingreso: septiembre-2005
Mensajes: 17
Antigüedad: 18 años, 7 meses
Puntos: 0
Exclamación Ayuda con la creacion de un buscador

Saludos...

No soy tan nuevo en el mundo de la programación web, pero si en el mundo de Javascript y la verdad espero que me puedan dar una manito con este problema que me tiene de cabeza () el mundo...

cuento corto, estoy realizando un sistema en donde el usuario debe realizar una búsqueda de facturas y/o productos agrícolas en particular, la idea es que cuando el escoja la opción "productos" se habilite la lista de "categoría" y bloquee los radio-buttons y sus inputs, ademas del select de "proveedor".

por otro lado, cuando el escoja la opcion "factura" se habiliten los radio-buttons y sus inputs y bloquear la lista de "categoria".

inicialmente todo debe de estar inhabilitado y una vez escogida una opción se comience a jugar con los otros menús.

Ah! por último... no se si se podría hacer tambien que cuando uno escoja un radio-button su (o sus) input se desbloqueen y bloqueen los otros inputs.

bueno, les dejo el codigo que tengo, que debe de contener mas de algun error...

gracias

Código HTML:
<html>
<h3 class="art-postheader"><center>B&uacute;squeda de &iacute;tems espec&iacute;ficos (Ej.: facturas, semillas, fertilizantes, etc.)</center></h3>
<br />
<!-- article-content -->
<form name='buscador'>
CRITERIO:&nbsp;
<select name='criterio' onchange="funcion(this, this.form);">
<option value="0" selected="selected">---</option>
<option value="1">PRODUCTO</option>
<option value="2">FACTURA</option>
</select>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
CATEGOR&Iacute;A:&nbsp;
<select name='cat_crit' disabled="disabled">
<option value="1">TODOS</option>
<option value="2">SEMILLAS</option>
<option value="3">FERTILIZANTES</option>
<option value="4">MAQUINARIAS</option>
<option value="5">INSECTICIDAS</option>
<option value="6">PESTICIDAS</option>
</select>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<br /><br />
<input type="radio" name="cri_fact" value="num_factura" 
habilita(this.form)">N&Uacute;MERO:&nbsp;<input type="text" size="10" maxlength="10" name="num_factura" disabled="disabled"/>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<input type="radio" name="cri_fact" value="mes" onClick="habilita(this.form)">MES:&nbsp;<input type="text" size="2" maxlength="2" name="mes" disabled="disabled"/>&nbsp;&nbsp;A&Ntilde;O:&nbsp;<input type="text" size="4" maxlength="4" name="anio" disabled="disabled"/>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<input type="radio" name="cri_fact" value="proveedores" onClick="habilita(this.form)">PROVEEDOR:&nbsp;
<select name="proveedores" disabled="disabled">
<option value="0" selected="selected">TODOS</option>
<option value="1">PROVEEDOR 1</option>
<option value="2">PROVEEDOR 2</option>
<option value="3">PROVEEDOR 3</option>
<option value="4">PROVEEDOR 4</option>
</select>
<br /><br />
<center>
<input class="art-button" type="button" value="Buscar" />
</center>
</form>
<!-- /article-content -->
</html> 

eso es el formulario...
el codigo javascript que tengo es el siguiente...

para el bloqueo de los selects
Código HTML:
function funcion( th, thF ){
	var elementosArray = [ "cat_crit", "cri_fact", "num_factura", "mes", "anio", "proveedores" ];
	if( Number( th.options[ th.selectedIndex ].value ) == 1 ){
		thF[ elementosArray[0] ].disabled = false;
		thF[ elementosArray[1] ].disabled = true;
	}
	if( Number( th.options[ th.selectedIndex ].value ) == 2 ){
		thF[ elementosArray[0] ].disabled = true;
		for(var i=1;i<elementosArray.length;i++){
			if( Number( th.options[ th.selectedIndex ].value ) > 0 )
				thF[ elementosArray[i] ].disabled = false;
	}
	/*else{
		thF[ elementosArray[0] ].disabled = false;
		thF[ elementosArray[1] ].disabled = false;
	}*/
}
para el bloqueo de los radio-buttons

Código HTML:
function habilita(){
	document.buscador.num_factura.disabled = false;
}

function deshabilita(){
	document.buscador.cri_fact.disabled = true;
	document.buscador.cri_fact.value = "";
}
espero con ansias sus aportes