Ver Mensaje Individual
  #1 (permalink)  
Antiguo 21/12/2011, 12:04
htmlnewbie
 
Fecha de Ingreso: julio-2011
Ubicación: Ciudad de México
Mensajes: 25
Antigüedad: 13 años, 8 meses
Puntos: 0
Pregunta Evitar inserción en Base de datos

Hola a todos gente del foro! Cómo están? Espero que muy bien!

Pongo ésto en el foro de Java porque probablemente lo que necesito se tenga que hacer con éste lenguaje.

Tengo el siguiente javascript para validar que una fecha sea menor a otra entre 2 campos de texto

Código:
<script language="javascript" type="text/javascript">  
// Validación de fecha mayor //


//Formato de la fecha
// 1 = DD/MM/YYYY 
// 2 = MM/DD/YYYY	
// 3 = YYYY/MM/DD
// 4 = YYYY/DD/MM
var formato = 3;

//**********************************************************************************************
//	invierta una fecha dada retornando en formato YYYYMMDD
//  dFecIni = Fecha a invertir
//	nTipFormat = Formato en que biene la fecha
//				 1 = DD/MM/YYYY 
//				 2 = MM/DD/YYYY	
//				 3 = YYYY/MM/DD
//				 4 = YYYY/DD/MM

function invFecha(nTipFormat,dFecIni){
	var dFecIni = dFecIni.replace(/-/g,"/");					// reemplaza el - por /	
	
	// primera division fecha
	var nPosUno  = ponCero(dFecIni.substr(0,dFecIni.indexOf("/")));
	// 2º divicion fecha
	var nPosDos  = ponCero(dFecIni.substr(parseInt(dFecIni.indexOf("/")) + 1,parseInt(dFecIni.lastIndexOf("/")) - parseInt(dFecIni.indexOf("/")) - 1));
	// 3º divicion fecha
	var nPosTres = ponCero(dFecIni.substr(parseInt(dFecIni.lastIndexOf("/")) + 1));

	switch(nTipFormat){
		case 1 :	//	DD/MM/YYYY
			dReturnFecha = nPosTres + "" + nPosDos + "" + nPosUno;
			break;

		case 2 :	//	MM/DD/YYYY
			dReturnFecha = nPosTres + "" + nPosUno + "" +nPosDos;
			break;

		case 3 :	//	YYYY/MM/DD
			dReturnFecha = nPosUno + "" + nPosDos + "" +nPosTres;
			break;
	
		case 4 :	//	YYYY/DD/MM
			dReturnFecha = nPosUno + "" + nPosTres + "" +nPosDos;
			break;
	}
	
	return dReturnFecha;	// retorna la fecha 	
}

// Agrega un cero delante del strPon cuando tenga solo un caracter
function ponCero(strPon){
	if(parseInt(strPon.length)<2)
		strPon = "0" + strPon;
	return strPon;
}

//*******************************************************************************
// valida que la fecha fecha_ini es menor o igual a  fecha_fin
// los parametros fecha_ini, fecha_fin son fecha con divisores validos "-" o "/"
// el parametro dFormat es el tipo de formato en que viene la fecha 
//				 1 = DD/MM/YYYY 
//				 2 = MM/DD/YYYY	
//				 3 = YYYY/MM/DD
//				 4 = YYYY/DD/MM

function comparaFecha(dFormat,fecha_ini, fecha_fin){
	fecha_ini = invFecha(dFormat,fecha_ini);
	fecha_fin = invFecha(dFormat,fecha_fin);

	if(fecha_ini > fecha_fin)
		return false;
	else
		return true;
}

function validaFecha( formulario ){
	var dFechaMenor = formulario.fecha_ini.value;
	var dFechaMayor = formulario.fecha_fin.value;

	if(comparaFecha( formato,dFechaMenor,dFechaMayor) == true)
		alert("OK. La fecha de inicio es menor que la fecha de fin.");
	else
		alert("EROR! La fecha de inicio NO es menor que la fecha de fin, por favor corrija el dato");
} 
  
</script>
Una vez que se valida, se tiene que presionar un "input button", y quiero que cuando la fecha de inicio sea mayor a la fecha de fin, NO SE HAGA LA INSERCIÓN

Aquí está el código de lo que necesito que no se inserte cuando no se cumple que la fecha de fin sea mayor a la de inicio:

Código:
<form id="mensaje" action="guardarMensaje.jsp" <%--action="guardarBD.jsp"--%> method="post">  
         <% out.println(bus.busqueda_evento());%>
     
   <br />
   </td>
  </tr>
  <tr>
   <td height="20">
   </td>
  </tr>
  <tr>
   <td>
    <div id="especial" align="left"></div> 
      <br />
   </td>
  </tr>
  <tr>
   <td>
   <!--  <div id="subsancion" align="center"></div> -->
      <br />
   </td>   
  </tr>
  <tr>
   <td>
       
   <!--  <div id="tramite" align="left"></div> -->
     
     
      <br />
      <br />
    
   </td>
  </tr>
  <tr>
   <td>
      
   <!--  <div align="left"> -->
        
      Texto del mensaje
      <br/>
        <textarea name="motivo" id="motivo"  cols="70" rows="3"></textarea>
      &nbsp;&nbsp;&nbsp;&nbsp;<br/>
      <br/>
      <br/>
      Fecha de inicio &nbsp;
     <input type="text" id="fecha_inicio" name="fecha_ini" /> &nbsp;
     <input type="button" id="calendario1" value="»" name="calend1" />
     &nbsp;&nbsp;
     &nbsp;&nbsp;
     &nbsp;&nbsp;
     Fecha de fin &nbsp;
     <input type="text" id="fecha_fin" name="fecha_fin" /> &nbsp;
     <input type="button" id="calendario2" value="»" name="calend2" />
      <br/>
      <br/>
      <br/>
      
     Regularidad de los mensajes:
     <br/>
      <br/>
      <div>
          Diariamente:<input type="radio" id="diariamente" name="frecu" onclick="funcionOcultar();" value="diariamente" checked="checked"></input>
      
      <!--<br/>-->&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
      
      Solamente en:<input type="radio" id="dia" name="frecu" onclick="funcionVer();" value="dias"></input>
      <br/>
      <br/>
      <div id="miDiv2" style="display:none">
          &nbsp;&nbsp;Dom<input type="checkbox" value="Sun" name="dia"/>
          &nbsp;&nbsp;Lun<input type="checkbox" value="Mon" name="dia"/>
          &nbsp;&nbsp;Mar<input type="checkbox" value="Tue" name="dia"/>
          &nbsp;&nbsp;Mié<input type="checkbox" value="Wed" name="dia"/>
          &nbsp;&nbsp;Jue<input type="checkbox" value="Thu" name="dia"/>
          &nbsp;&nbsp;Vie<input type="checkbox" value="Fri" name="dia"/>
          &nbsp;&nbsp;Sáb<input type="checkbox" value="Sat" name="dia"/>
      </div>  
      </div>
      <br/>
      <br/>
     
     <input type="submit" value="Registrar" onClick="return validaFecha(this.form );"/> 
       
     </form>
Espero me puedan ayudar, gracias por su atención!