Mensaje personalizado para validación ‘requiredIf’ en Laravel

Estoy utilizando mensajes personalizados en una validación con Laravel, la mayoría me funcionan pero específicamente los que son requiredIf no me funcionan.

He visto que los utilizan así:

protected $  mensajes = [     'salas.required_if' => 'mensaje personalizado' ] 

pero a mi eso no me funciona. Aclaro que si toma el dato como obligatorio cuando se cumple la condición, pero no manda el mensaje que yo definí, manda uno que entiendo es predefinido:

“El campo salas es obligatorio”

Mi condición es algo como esto:

$  arreglo['salas'][] = Rule:requiredIf(function() use($  request)                           {                                return $  request->filled('dormitorios') ? false : true;                           }) 

Para dar un poco mas de contexto en cuanto a lo que quiero hacer, estoy recibiendo en un request dos arreglos (salas, dormitorios), pero quiero que siempre venga al menos uno de ellos o los dos, pero si ambos están ausentes estaría mal, y por eso la validación del requiredIf.

problema validacion form con js para enviar por post php

tengo este form:

<form action="../procedimientos/guardar_familiar.php" onsubmit="return verificarFormulario" method="post">     <div class="form-group">         <label>Primer apellido <b>*</b> : </label>         <input type="text" class="form-control" name="apellido_1" id="apellido_1" placeholder="Introduce el primer apellido">        </div>     <div class="form-group text-center">         <button id="btn_guardar_familiar" type="submit" class="btn btn-success w-100 py-100">Guardar</button>            </div> </form>   <script>         function verificarFormulario () {          var campo_apellido_1 = document.getElementById("apellido_1");          if (campo_apellido_1.value.trim().length == 0) {             // toastr.warning('Warning','Hola mund');             //alert("INVALIDO");             toastr.warning('El primero apellido no puede estar vacio!','Error');             return false;         };                  //alert("VALIDO");                 return true;         }  </script> 

Si no esta completo el campo apellido_1 te manda el toastr bien, pero cuando esta completo no me lo guarda al llamar al fichero php. El fichero.php funciona porque lo he probado con otras cosas, pero ahora que le he metido la validacion con js ya no llo guarda cuando el campo apellido_1 esta relleno.

Validación de checkbox

Necesito ayuda

estoy intentando validar unos checkbox con Js. necesito que al menos uno esté seleccionado para que pueda validar, si no hay selección que arroje un mensaje “Selecciona al menos una casilla”.

esos checkbox hacen parte de un formulario con otros tipos de entrada. https://malecoo.000webhostapp.com/ agradezco su ayuda

Varios IF y operación sumar si conjunto con Validación de datos

Tengo dos filtros con dos validaciones de datos en dos celdas. A partir de la selección que el usuario realice, se ejecuta un sumar.si.conjunto en función de una fecha (en una celda en filas) y una tipología en un columnas.

El problema que tengo es que el filtro 1 y el filtro 2 (de la validación de datos) tiene 8 opciones y 3 opciones respectivamente. Por tanto lo he formulado con SI (Y…. ) imaginaros la cantidad de condiciones que he tenido que introducir (casi no entra en el xls). Además en función del filtro, ejecuta el sumar.si.conjunto en una columna u otra.

Me preguntaba antes de meterme en hacer algo con VBA, si podría mejorar el rendimiento o no. Tarda aproximadamente unos 30 segundos cada vez que cambio de filtros.

Además me vendría alguna ayuda de por donde podría comenzar….

1.Tengo la tabla donde se actualizan los datos:

TIPOLOGIA (columnas) | FECHAS (FILAS).

Lo calculo con un sumar.si.conjunto en función de la tipología y de las fechas. Y tienen los IF.

  1. Filtros.

  2. Tabla de datos. Origen de los mismos, depende del filtro se coge una columna u otra.

gracias.

Validación de campo según edad

Estoy realizando una app de escritorio para gestionar inscriptos de distintas edades a diversos cursos. Estoy trabado, y por eso les escribo para que me ayuden a solucionar, ya que necesito que a partir del cálculo de la edad del inscripto (menor de 18 años) se desactiven ciertos txt que corresponden a datos para adultos: antecedentes laborales y cursos de capacitación. Hice distintas pruebas, y algunas me arrojan error de nullFormatException y otras me desactivan los txt independientemente de la edad del inscripto. En sql, por ejemplo el campo fechaNacimiento es date null, y en la clase inscripto en netbeans la declaré como String. Al ejecutar el abm todo funciona bien, solo que estoy validando campos y me falta desactivar estos txts apartir de la edad. Les muestro el código que generé. Desde ya muchas gracias.

    private void txtEdadActionPerformed(java.awt.event.ActionEvent evt) {                                             DateTimeFormatter date = DateTimeFormatter.ofPattern("yyyy/MM/dd");     LocalDate fecNac = LocalDate.parse(txtFechaNacimiento.getText(), date);     LocalDate fecHoy = LocalDate.now();      Period periodo = Period.between(fecNac, fecHoy);      String edad = (" " + periodo.getYears()); 

txtEdad.setText((edad));//Esto funciona bien, me calcula la edad.

//A partir de aquí empecé con las diversas pruebas. Las que dicen Anda?me desactivan los txts independientemente de la edad.

//

    String fecha = txtFechaNacimiento.getText();// No anda. //        int f = Integer.parseInt(fecha);// No anda. //        int e = Integer.parseInt(edad);//No anda. //        int e = Integer.parseInt(txtEdad.getText());//No anda. //        int e = Integer.parseInt("18");//Anda? //        int f = Integer.parseInt(txtFechaNacimiento.getText());//No anda.  //        int e = 18;           int e = Integer.valueOf("18");//Anda? //        int e = Integer.valueOf(edad);//No anda.    //        int e = Integer.parseInt(("18"));//Anda?           if (e<=18) {    //        if(f<2001/01/01){              txtTitCurso.setEnabled(false);             txtInstitucionCC.setEnabled(false);             txtAnio.setEnabled(false);             txtDuracionEnHs.setEnabled(false);             btnCCCompSI.setEnabled(false);             btnCCCompNO.setEnabled(false);             btnCCCurSI.setEnabled(false);             btnCCCurNO.setEnabled(false);             txtHabilidades.setEnabled(false);             txtEmpresa.setEnabled(false);             txtPuesto.setEnabled(false);             txtRubro.setEnabled(false);             txtDomicilioAL.setEnabled(false);             txtTelefonoAL.setEnabled(false);             txtOtrosAL.setEnabled(false);         } 

¿Por que mi función no ejecuta el primer if en mi validación en Javascript?

¿Por que mi función no ejecuta el primer if en mi validación en Javascript? tengo este problema con mi código en javascript que si entra la función pero no las condiciones por lo tanto no entra la evaluación de los datos y envia los datos aun que los campos estes vacíos. No tengo idea cual es el error. Les dejo mi código html y mi javascript ojalá me puedan ayudar saludos.

Este es mi codigo js

function vale() {     alert("Entra la Fucncion");     var nombre, apellidos, correo, password, cofpassword, telefono, celular, expression, calle, colonia, ciudad, estado, cp, terminos;      nombre = document.getElementById("nombre").value;     apellidos = document.getElementById("apelli").value;     correo = document.getElementById("correo").value;     password = document.getElementById("contra").value;     cofpassword = document.getElementById("confcont").value;     telefono = document.getElementById("telf").value;     celular = document.getElementById("celu").value;     calle = document.getElementById("calle").value;     colonia = document.getElementById("colonia").value;     ciudad = document.getElementById("ciudad").value;     estado = document.getElementById("estado").value;     cp = document.getElementById("cp").value;     terminos = document.getElementById("terminos").checked;      expression = /\w+@\w+\.+[a-z]/;      alert("Entra la Fucncion"); if (nombre == "" || apellidos == "" || correo == "" || password == "" || cofpassword == "" || telefono == "" || celular == "" || calle == "" || colonia == "" || ciudad == "" || estado == "" || cp == "") {         alert("Todos los campos son obligatorios");         return false;     } else if (nombre.length > 30) {         alert("El nombre es muy largo");         return false;     } else if (apellidos.length > 80) {         alert("Los apellidos son muy largos");         return false;     } else if (correo.length > 100) {         alert("El correo es muy largo");         return false;     } else if (!expression.test(correo)) {         alert("El correo no es valido");         return false;     } else if (password.length > 20 || cofpassword.length > 20) {         alert("La contraseña es muy larga");         return false;     } else if (password != cofpassword) {         alert("La contraseña no coincide");         return false;     } else if (telefono.length > 10 || celular.length > 10) {         alert("Los numeros de telefono o celular son debe ser de 10 digitos");         return false;     } else if (isNaN(telefono)) {         alert("El telefono no es un numero");         return false;     } else if (isNaN(celular)) {         alert("El celular no es un numero");         return false;     } else if (calle.length > 100) {         alert("La calle es muy larga");         return false;     } else if (colonia.length > 50) {         alert("La colonia es muy larga");         return false;     } else if (ciudad.length > 50) {         alert("La ciudad es muy larga");         return false;     } else if (estado.length > 50) {         alert("La estado es muy larga");         return false;     } else if (isNaN(cp)) {         alert("El CP debe ser un numero");         return false;     } else if (terminos == false) {         alert("Deve de Aceptar los terminos y Condiciones");         return false;     } else {         return true;     }  } 

este es mi codigo html

<!DOCTYPE html> <html>  <head>     <title>Registro</title>     <meta charset="UTF-8">     <link rel="stylesheet" type="text/css" href="../css/header.css">     <link rel="stylesheet" type="text/css" href="../css/estilos.css">     <script src="validar.js"></script> </head>  <body>     <header>         <div class="Contenedor">             <div class="fondo">                  <a href="../index.html"><img src="../Img/UembekuaLogo.png" id="Logo" alt="Logo Uembekua" onsubmit="return vale()"></a>              </div>             <nav>                 <ul class="nav">                     <li><a href="../index.html">Home</a></li>                     <li><a href="Servicios.html">Servicios</a>                         <ul class="Submenu">                             <li><a href="Paquetes.html">Paquetes</a></li>                             <li><a href="Cursos.html">Cursos</a></li>                             <li><a href="Vacaciones.html">Vacaciones</a></li>                             <li><a href="Masajes.html">Masajes</a></li>                             <li><a href="Precios.html">Precios</a></li>                             <li><a href="Reservacion.html">Reserva tu Servicio</a></li>                         </ul>                     </li>                     <li><a href="Conocenos.html">Conocenos</a></li>                     <li><a href="Instalaciones.html">Instalaciones</a></li>                     <li><a href="Informacion.html">Info</a></li>                  </ul>             </nav>          </div>     </header>     <main>          <section>             <form style="padding: 20px; margin-top: 20px" method="post" action="reg.php" onsubmit=" return vale()">                  <font style="font-family: Rockwell;">                     <center>                          <table align="Center" cellpadding="5px" cellspacing="5px">                             <tr>                                 <td align="center" colspan="3">                                     <h2>Crear cuenta</h2><br>                                 </td>                              </tr>                             <tr>                                 <td>Nombre:</td>                                 <td colspan="2"><input type="text" placeholder="Nombre" id="nombre" name="nombre"><br></td>                             </tr>                              <tr>                                 <td>Apellidos: </td>                                 <td colspan="2"><input type="text" placeholder="Apellidos" id="apelli" name="apelli"><br></td>                             </tr>                                <tr>                                 <td>Correo:</td>                                 <td colspan="2"><input type="email" placeholder="example@correo.com" id="correo" name="correo"><br></td>                             </tr>                             <tr>                                 <td>Contraseña:</td>                                 <td colspan="2"><input type="password" placeholder="Contaseña" id="contra" name="contra"><br></td>                             </tr>                              <tr>                                 <td>Confirmar contraseña:</td>                                 <td colspan="2"><input type="password" placeholder="Contaseña" id="confcont"><br></td>                             </tr>                             <tr>                                 <td>Teléfono:</td>                                 <td colspan="2"><input type="text" placeholder="Tu teléfono" id="telf" name="telf"><br></td>                             </tr>                             <tr>                                 <td>Celular:</td>                                 <td colspan="2"><input type="text" placeholder="Tu celular" id="celu" name="celu"><br></td>                             </tr>                                <tr>                                 <td>Calle#:</td>                                 <td colspan="2"><input type="text" placeholder="Tu Calle#" id="calle" name="calle"><br></td>                             </tr>                             </tr>                                <tr>                                 <td>Colonia:</td>                                 <td colspan="2"><input type="text" placeholder="Tu colonia" id="colonia" name="colonia"><br></td>                             </tr>                             </tr>                                <tr>                                 <td>Ciudad:</td>                                 <td colspan="2"><input type="text" placeholder="Ciudad" id="ciudad" name="ciudad"><br></td>                             </tr>                               <tr>                                 <td>Estado:</td>                                 <td colspan="2"><input type="text" placeholder="Estado" id="estado" name="estado"><br></td>                             </tr>                             <tr>                                 <td>CP:</td>                                 <td colspan="2"><input type="text" placeholder="CP" id="cp" name="cp"><br></td>                             </tr>                                <tr cellpadding="5" align="center">                                  <td colspan="2"><input type="checkbox" name="terminos"><a href="https://www.timeinc.net/subs/privacy/termsofservice/pptos.html">Terminos y Condiciones</a></td>                                 </tr>                              <tr cellpadding="5" align="center">                                  <td colspan="2"><input type="submit" id="save" value="Registrarse"></td>                                 </tr>                          </table>                     </center>                 </font>             </form>             <center>              <a href="Reservacion.html"><input type="submit" name="cancel" value="Cancelar"></a>             </center>         </section>      </main>      <footer>         <p align="center" id="copyright">Uémbekua &mdash; Todos los derechos reservados &copy; </p>         <a href="#"><img src="../Img/facebook1.png" id="img1"></a>         <a href="#"><img src="../Img/instagram1.png" id="img2"></a>     </footer>  </body>  </html> 

Validación de fechas con php

El código en general esta bien. Lo que me falla es la función para comprobar las fechas, no consigo que funcione correctamente y hay algún fallo que no consigo averiguar. Se supone que hay dos radio buttons (uno para elegir billete de ida solo y otro para elegir billete de ida y vuelta) y en función del seleccionado se habilita o deshabilita el desplegable de elección de fecha de vuelta. Hasta ahí todo bien, el tema es que al comprobar con la fun ción comprobarFechas siempre me da error cuando eligo solo billete de ida. Un saludo y gracias por atenderme.

<?php 	error_reporting(0); ?> <!DOCTYPE html> <html lang="es-ES"> <head> 	<meta charset="utf-8"> 	<script type="text/javascript"> 		function habilitar(value) { 			if (value == "1") { 				document.getElementById("campoVuelta").disabled = false; 			} else if(value == "2") { 				document.getElementById("campoVuelta").disabled = true; 			} 		} 	</script> 	<title>Compra-Venta Billetes</title> </head> <body> 	<?php 		$  nombreErr = $  apellidoErr = $  fechaErr = $  claseErr = $  extrasErr = ""; 		$  correcto = true;  		if($  _SERVER["REQUEST_METHOD"] == "POST") { 			if (empty($  _POST["nombre"])) { 				$  nombreErr = "Debe indicar un nombre."; 				$  correcto = false; 			} else { 				if (!comprobarNombreYapellido($  _POST["nombre"])) { 					$  nombreErr = "Debe indicar un nombre válido. Use letras solamente."; 					$  correcto = false; 				} 			}  			if (empty($  _POST["apellido"])) { 				$  apellidoErr = "Debe indicar un apellido."; 				$  correcto = false; 			} else { 				if (!comprobarNombreYapellido($  _POST["apellido"])) { 					$  apellidoErr = "Debe indicar un apellido válido. Use letras solamente."; 					$  correcto = false; 				} 			}  			if (empty($  _POST["clase"])) { 				$  claseErr = "Debe indicar una clase."; 				$  correcto = false; 			}  			if (!comprobarExtras($  _POST["extras"])) { 				$  extrasErr = "No puede seleccionar mas de un extra de cada grupo"; 				$  correcto = false; 			}  			if (!comprobarFechas($  _POST["ida"], $  _POST["vuelta"], $  _POST["trayecto"])) { 				$  fechaErr = "La fecha de ida debe ser válida y la fecha de vuelta debe ser posterior a la fecha de ida."; 				$  correcto = false; 			} 		}  		function comprobarFechas($  fechaIda, $  fechaVuelta, $  trayecto) { 			/* si el campo fecha de vuelta esta vacío y el trayecto solo es de ida */ 			if (empty($  fechaVuelta) && $  trayecto == "Solo ida") { 				/* se comprueba que la fecha de ida sea superior a la fecha actual */ 				if (strtotime($  fechaIda) > strtotime(date("Y-m-d"))) { 					return true; 				} else { 					return false; 				} 			/* en caso contrario hay fecha de vuelta y fecha de ida */ 			} else { 				/* se comprueba si la fecha de vuelta es superior a la fecha de ida y si la fecha de ida es superior a la fecha actual */ 				if (strtotime($  fechaVuelta) > strtotime($  fechaIda) && strtotime($  fechaIda) > strtotime(date("Y-m-d"))) { 					return true; 				} else { 					return false; 				} 			} 		}  		function comprobarNombreYapellido($  valor) { 			/* valida si el nombre contiene solo letras y espacios */ 			if (preg_match("/^([a-z ñáéíóú]{2,60})$  /i",$  valor)) { 				return true; 			} else { 				return false; 			} 		}  		function comprobarExtras($  extras) { 			if (empty($  extras)) { 				return true; 			} else { 				$  cantidadPeriodicos = 0; 				$  cantidadDesayunos = 0; 				$  cantidadAperitivos = 0; 				$  cantidadAuriculares = 0; 				$  cantidadPeliculas = 0; 				$  cantidadExtras = count($  extras) - 1; 				$  arrayPeriodicos = ["Daily Mail", "El Mundo", "Marca"]; 				$  arrayDesayunos = ["Continental", "Americano", "Internacional"]; 				$  arrayAperitivos = ["Patatas bravas", "Ensaladilla rusa", "Embutidos", "Boquerones en vinagre"]; 				$  arrayAuriculares = ["Básicos", "Premium"]; 				$  arrayPeliculas = ["Gladiator", "Vengadores Endgame", "Titanic", "Memento", "El rey león", "Drive"]; 				for ($  i=0; $  i <= $  cantidadExtras; $  i++) { 					$  periodico = $  extras[$  i]; 					if (in_array($  periodico, $  arrayPeriodicos)) { 						$  cantidadPeriodicos += 1; 					} 				} 				for ($  x=0; $  x <= $  cantidadExtras; $  x++) { 					$  desayuno = $  extras[$  x]; 					if (in_array($  desayuno, $  arrayDesayunos)) { 						$  cantidadDesayunos += 1; 					} 				} 				for ($  z=0; $  z <= $  cantidadExtras; $  z++) { 					$  aperitivo = $  extras[$  z]; 					if (in_array($  aperitivo, $  arrayAperitivos)) { 						$  cantidadAperitivos += 1; 					} 				} 				for ($  y=0; $  y <= $  cantidadExtras; $  y++) { 					$  auricular = $  extras[$  y]; 					if (in_array($  auricular, $  arrayAuriculares)) { 						$  cantidadAuriculares += 1; 					} 				} 				for ($  n=0; $  n <= $  cantidadExtras; $  n++) { 					$  pelicula = $  extras[$  n]; 					if (in_array($  pelicula, $  arrayPeliculas)) { 						$  cantidadPeliculas += 1; 					} 				}  				if ($  cantidadPeriodicos > 1) { 					return false; 				} elseif ($  cantidadDesayunos > 1) { 					return false; 				} elseif ($  cantidadAperitivos > 1) { 					return false; 				} elseif ($  cantidadAuriculares > 1) { 					return false; 				} elseif ($  cantidadPeliculas > 1) { 					return false; 				} else { 					return true; 				} 			} 		} 		/* si no valida el formulario volver a mostrarlo con los errores */ 		if(!isset($  _POST["botonEnvio"]) || !$  correcto) { 	?> 	<h2>Datos del viajero y el viaje</h2> 	<form method="post" action="<?php htmlspecialchars($  _SERVER["PHP_SELF"]); ?>"> 		<label>Nombre:</label> 		<input type="text" name="nombre"> 		<span><?php echo $  nombreErr; ?></span> 		<br><br> 		<label>Primer apellido:</label> 		<input type="text" name="apellido"> 		<span><?php echo $  apellidoErr; ?></span> 		<br><br> 		<label>Trayecto:</label> 		<input type="radio" name="trayecto" value="1" onchange="habilitar(this.value);">Ida y vuelta 		<input type="radio" name="trayecto" value="2" onchange="habilitar(this.value);">Solo ida 		<br><br> 		<label>Fecha de ida:</label> 		<input type="date" name="ida"> 		<br><br> 		<label>Fecha de vuelta:</label> 		<input type="date" name="vuelta" id="campoVuelta"> 		<span><?php echo $  fechaErr; ?></span> 		<br><br> 		<label>Clase:</label> 		<input type="radio" name="clase">Turista 		<input type="radio" name="clase">Preferente 		<input type="radio" name="clase">Business 		<span><?php echo $  claseErr; ?></span> 		<br><br> 		<label>Extras</label> 		<select name="extras[]" multiple="multiple"> 			<optgroup label="Periodicos"> 				<option>Daily Mail</option> 				<option>El Mundo</option> 				<option>Marca</option> 			</optgroup> 			<optgroup label="Desayunos"> 				<option>Continental</option> 				<option>Americano</option> 				<option>Internacional</option> 			</optgroup> 			<optgroup label="Aperitivos"> 				<option>Patatas bravas</option> 				<option>Ensaladilla rusa</option> 				<option>Embutidos</option> 				<option>Boquerones en vinagre</option> 			</optgroup> 			<optgroup label="Auriculares"> 				<option>Básicos</option> 				<option>Premium</option> 			</optgroup> 			<optgroup label="Peliculas"> 				<option>Gladiator</option> 				<option>Vengadores Endgame</option> 				<option>Titanic</option> 				<option>Memento</option> 				<option>El rey león</option> 				<option>Drive</option> 			</optgroup> 		</select> 		<span><?php echo $  extrasErr; ?></span> 		<br><br> 		<input type="submit" name="botonEnvio" value="enviar"> 	</form> 	<?php 		/* si valida el formulario carga en sesion los siguientes valores */  		} else { 		$  _SESSION["nombre"] = $  _POST["nombre"]; 		$  _SESSION["apellido"] = $  _POST["apellido"]; 		$  _SESSION["ida"] = $  _POST["ida"]; 		$  _SESSION["vuelta"] = $  _POST["vuelta"]; 		$  _SESSION["clase"] = $  _POST["clase"]; 		$  _SESSION["extras"] = $  _POST["extras"]; 		header("Location: ./2017_03_01_2ev-Ejercicio2c.php"); 		} 	?> </body> </html>