Ver Mensaje Individual
  #1 (permalink)  
Antiguo 31/08/2017, 10:53
mikil
 
Fecha de Ingreso: agosto-2002
Ubicación: Lleida
Mensajes: 506
Antigüedad: 22 años, 3 meses
Puntos: 0
captura onblur

tengo un formulario en el que al entrar el codigo de un articulo compruebo con ajax una serie de incidencias lanzo mensajes de aviso. segun el tipo de mensaje debo avanzar o mantener el foco en el mismo campo.

la llamada a va bien, pero para lanzar la funcion de MostrarConsuta utilizo el evento OnBlur y cuando hay incidencias se queda lanzando una vez y otra el mensaje en alert

Código:
                                   
 <input type="text" class="form-control" maxlength="8" name="codigoOD" id="codigoOD" 
                                            onBlur="MostrarConsultaD();" 
                                            value="<?php echo $codigoOD; ?>"/>
la funcion llamada
Código:
	function MostrarConsultaD(){
		var id = document.formdetall.codigoOD.value;
		var url = 'c_articulo_LC.php';
			$.ajax({
			type:'POST',
			url:url,
			data:'id='+id,
			success: function(valores){
					var datos = eval(valores);					
					$('#radODLC').val(datos[0]);
					$('#ejeODLC').val(datos[1]);
					$('#cilODLC').val(datos[2]);
					$('#esfODLC').val(datos[3]);
					$('#diaODLC').val(datos[4]);
					var terror = datos[0];
					var ustock = datos[9];
					if (terror == 'ERROR1') {
						alert('Faltan digitos');
						$('#codigoOD').val('');
						$('#radODLC').val('');
						$('#ejeODLC').val('');
						$('#cilODLC').val('');
						$('#esfODLC').val('');
                                                $('#diaODLC').val('');
						document.formdetall.codigoOD.focus();					
					}
					if (terror == 'ERROR2') {
						alert('CODIGO ARTICULO no definida');
						$('#codigoOD').val('');
						$('#radODLC').val('');
						$('#ejeODLC').val('');
						$('#cilODLC').val('');
						$('#esfODLC').val('');
						$('#diaODLC').val('');
						document.formdetall.codigoOD.focus();					
					}
					if (terror == 'ERROR3') {
						alert('ATENCION: DIFERENTE TDA ');
						$('#radODLC').val(datos[0]);
						$('#ejeODLC').val(datos[1]);
						$('#cilODLC').val(datos[2]);
						$('#esfODLC').val(datos[3]);
						$('#diaODLC').val(datos[4]);
						document.formdetall.codigoOD.focus();					
					}
					if (ustock < 1) {
						alert('No hay stock de este ARTICULO ');
						document.formdetall.codigoOI.focus();
					}

				return false;
			}
		});
		return false;
	}
creo que el problema lo tengo en que no se usar correctamente la funcion onblur pero llevo probando y no consigo mi objetivo.
me podrias decir tambien como lanzar en lugar de un alert (que queda muy mal) abrir una ventana con el mensaje?

gracias