2017-10-08 1 views
0

J'ai cherché différents jours une réponse à ma situation, mais je ne peux pas le trouver.
J'ai un code jsp où j'inclus deux modaux et quand j'essaie d'en afficher un, il ne s'affiche pas mais l'élément apparaît (dans le moniteur il n'y a pas de changements, mais le focus change sur le modal permettez-moi d'interagir avec les éléments du modal tels que les champs d'entrée)Bootstrap modal fonctionne mais ne s'affiche pas

Et la console du navigateur ne montre aucune erreur

ceci est mon code:
index.jsp

<%@page contentType="text/html" pageEncoding="UTF-8"%> 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd"> 

<html> 
    <head> 
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
     <title>Ejercicio 1</title> 
     <link rel="stylesheet" type="text/css" href="./css/bootstrap.min.css"> 
     <link rel="stylesheet" type="text/css" href="./css/font-awesome.min.css"> 
     <link rel="stylesheet" type="text/css" href="./css/jquery.dataTables.min.css"> 
     <link rel="stylesheet" type="text/css" href="./css/main.css"> 
    </head> 
    <body> 
    <nav class="navbar navbar-default navbar-fixed-top"> 
     <div class="container"> 
      <div class="navbar-header"> 
       <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-controls="navbar"> 
        <span class="sr-only">Toggle navigation</span> 
        <span class="icon-bar"></span> 
        <span class="icon-bar"></span> 
        <span class="icon-bar"></span> 
       </button> 
       <a class="navbar-brand" href="./">Ejercicio</a> 
      </div> 
      <div id="navbar" class="collapse navbar-collapse"> 
       <ul class="nav navbar-nav"> 
       </ul> 
      </div> 
     </div> 
    </nav> 
    <div class="container"> 
     <div class="col-md-2 sidenav" id="info"> 
     <!-- añadir información del elemento seleccionado --> 
     </div> 
     <div class="col-md-8 text-left"> 
      <div class="panel panel-info"> 
       <div class="panel-heading"> 
        <h1>Tabla de Empleados</h1> 
       </div> 
       <div class="panel-body"> 
        <%@include file="tablaEmpleados.jsp" %> 
       </div> 
      </div> 
      <br> 
      <br> 
      <div class="panel panel-success"> 
       <div class="panel-heading"> 
        <h1>Diferencias</h1> 
       </div> 
       <div class="panel-body"> 
        <div class="col-md-6"> 
         <h2>Request</h2> 
         <p>Aquí, los atributos solo permanecen cuando la petición 
         esté completa, o cuando se pasa de un servlet a otro y 
         son utiles cuando se necesita pasar información especifica 
         del lado de servlet a jsp.</p><br> 
         <p>Un ejemplo es el resultado de una consulta.</p> 
        </div> 
        <div class="col-md-6"> 
         <h2>Session</h2> 
         <p>Aquí, los atributos permanecen activos mientras la 
         sesión este activa, ya que se espera que haya peticiónes 
         relacionadas. Los atributos de sesion no se pueden pasar 
         de un servlet a otro. Son utiles cuando se requiere 
         pasar información constantemente por una sesion</p><br> 
         <p>Un ejemplo es la identificación de un usuario.</p> 
        </div> 
       </div> 
      </div> 
     </div> 
     <div class="col-md-2 sidenav"> 
      <div class="btn-group-vertical"> 
       <button name="BotonAgregar" class="btn btn-info" data-toggle="modal" data-target="#ModalAgregar"> 
        <span class="fa fa-check" aria-hidden="true"></span> Agregar 
       </button> <br> 
       <button name="BotonEditar" class="btn btn-success" data-toggle="modal" data-target="#ModalModificar" disabled> 
        <span class="fa fa-pencil" aria-hidden="true"></span> Editar 
       </button> <br> 
       <button name="BotonEliminar" class="btn btn-danger" id="Eliminar" disabled> 
        <span class="fa fa-trash" aria-hidden="true"></span> Editar 
       </button> 
      </div> <!--botones de agregar, eliminar y editar --> 
     </div> 
    </div> 
    <%@include file="../Modals/modalAgregar.jsp" %> 
    <%@include file="../Modals/modalModificar.jsp" %> 
    <script type="text/javascript" src="./js/jquery-3.2.1.min.js"></script> 
    <script type="text/javascript" src="./js/popper.js"></script> 
    <script type="text/javascript" src="./js/bootstrap.min.js"></script> 
    <script type="text/javascript" src="./js/datatables.min.js"></script> 
    <script type="text/javascript" src="./js/bootbox.min.js"></script> 
    <script type="text/javascript" src="./js/main.js"></script> 
</body> 
</html> 

tablaEmpleados.jsp:

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> 
<%@page contentType="text/html" pageEncoding="UTF-8"%> 
<jsp:include page="../app/modulo/EmpleadosServlet.do" /> 
<!DOCTYPE html> 
<table class="table table-hover" id="tablaEmpleados"> 
    <thead> 
     <tr> 
      <td>Nombre</td> 
      <td>Telefono</td> 
      <td>CURP</td> 
      <td>Correo</td> 
     </tr> 
    </thead> 
    <tbody id="cuerpo"> 
     <c:forEach items="${Empleado}" var="item"> 
      <tr class="fila"> 
       <td class="data nombre">${item.nombre}</td> 
       <td class="data telefono">${item.telefono}</td> 
       <td class="data curp">${item.curp}</td> 
       <td class="data correo">${item.correo}</td> 
      </tr> 
     </c:forEach> 
    </tbody> 
</table> 

modalAgregar.jsp:

<%@page contentType="text/html" pageEncoding="UTF-8"%> 

<div id="ModalAgregar" class="modal fade" role="dialog"> 
    <div class="modal-dialog"> 
     <!-- Modal content--> 
     <div class="modal-content"> 
      <div class="modal-header"> 
       <button type="button" class="close" data-dismiss="modal">&times;</button> 
       <h4 class="modal-title">Agregar empleado</h4> 
      </div> 
      <div class="modal-body"> 
       <form id="Agregar"> 
        <input type="hidden" name="event" id="evm" value="1"> 
        <div class="input-group"> 
         <span class="input-group-addon"><i class="fa fa-user" aria-hidden="true"></i></span> 
         <input type="text" class="form-control nombre" name="nombre"> 
        </div> 
        <div class="input-group"> 
         <span class="input-group-addon"><i class="fa fa-phone" aria-hidden="true"></i></span> 
         <input type="text" class="form-control telefono" name="telefono"> 
        </div> 
        <div class="input-group"> 
         <span class="input-group-addon"><i class="fa fa-address-card" aria-hidden="true"></i></span> 
         <input type="text" class="form-control curp" name="curp"> 
        </div> 
        <div class="input-group"> 
         <span class="input-group-addon"><i class="fa fa-envelope-o" aria-hidden="true"></i></span> 
         <input type="text" class="form-control correo" name="correo"> 
        </div> 
        <div class="input-group"> 
         <span class="input-group-addon"><i class="fa fa-send" aria-hidden="true"></i></span> 
         <input type="submit" class="form-control" name="submit" value="Agregar empleado"> 
        </div> 
       </form> 
      </div> 
      <div class="modal-footer"> 
       <button type="button" class="btn btn-default" data-dismiss="modal">Cerrar</button> 
      </div> 
     </div> 

    </div> 
</div> 

modalModificar.jsp:

<%@page contentType="text/html" pageEncoding="UTF-8"%> 

<div id="ModalModificar" class="modal fade" role="dialog"> 
    <div class="modal-dialog"> 
     <!-- Modal content--> 
     <div class="modal-content"> 
      <div class="modal-header"> 
       <button type="button" class="close" data-dismiss="modal">&times;</button> 
       <h4 class="modal-title">Modificar empleado</h4> 
      </div> 
      <div class="modal-body"> 
       <form id="Modificar"> 
        <input type="hidden" name="event" value="2"> 
        <div class="input-group"> 
         <span class="input-group-addon"><i class="fa fa-user" aria-hidden="true"></i></span> 
         <input type="text" class="form-control nombre" name="nombre"> 
        </div> 
        <div class="input-group"> 
         <span class="input-group-addon"><i class="fa fa-phone" aria-hidden="true"></i></span> 
         <input type="text" class="form-control telefono" name="telefono"> 
        </div> 
        <div class="input-group"> 
         <span class="input-group-addon"><i class="fa fa-address-card" aria-hidden="true"></i></span> 
         <input type="text" class="form-control curp" name="curp" disabled> 
        </div> 
        <div class="input-group"> 
         <span class="input-group-addon"><i class="fa fa-envelope-o" aria-hidden="true"></i></span> 
         <input type="text" class="form-control correo" name="correo"> 
        </div> 
        <div class="input-group"> 
         <span class="input-group-addon"><i class="fa fa-send" aria-hidden="true"></i></span> 
         <input type="submit" class="form-control" name="submit" value="Modificar empleado"> 
        </div> 
       </form> 
      </div> 
      <div class="modal-footer"> 
       <button type="button" class="btn btn-default" data-dismiss="modal">Cerrar</button> 
      </div> 
     </div> 

    </div> 
</div> 

main.js:

$(document).ready(function() { 
    var ExpRegular = /[[a-z]\s]+/i; 
    var ExpRegularTel = /[0-9][0-9][0-9](-)[0-9](-)[0-9][0-9](-)[0-9][0-9](-)[0-9][0-9]/; 
    var ExpRegularCurp = /[A-Z]{4}[0-9]{6}[A-Z]{6}[0-9]{2}/; 
    var ExpRegularCorreo = /([a-z]|[0-9]|.|-|_)[email protected][a-z]+(.|[a-z])+/i; 

    var tabla = $("#tablaEmpleados").DataTable(); 
    var nombre = ""; 
    var telefono = ""; 
    var curp = ""; 
    var correo = ""; 

    bootbox.setLocale("es"); 

    $('#tablaEmpleados tbody').on('click', 'tr', function() { 
     nombre = tabla.row(this).data()[0]; 
     telefono = tabla.row(this).data()[1]; 
     curp = tabla.row(this).data()[2]; 
     correo = tabla.row(this).data()[3]; 
     $("button").each(function (index) { 
      $(this).removeAttr("disabled"); 
     }); 


     //$(".nombre").get(1).val(nombre); 
     //$(".telefono").get(1).val(telefono); 
     //$(".curp").get(1).val(curp); 
     //$(".correo").get(1).val(correo); 
     $("#info").empty(); 
     $("#info").append("<p>Nombre: " + nombre + "</p><br><p>Telefono: " + telefono + "</p><br><p>CURP: " + 
       curp + "</p><br><p> Correo: " + correo + "</p>"); 
    }); 

    $('form').submit(function (event) { 
     var index = parseInt($("")); 
     event.preventDefault(); 
     if (ExpRegular.exec($(".nombre").get()).val() === null || ExpRegular.exec($(".nombre").val()) !== $(".nombre").val()) { 
      bootbox.alert({ 
       title: "Error", 
       size: "large", 
       message: "Error: El nombre no es valido" 
      }); 
     } else if (ExpRegularTel.exec($(".telefono").val()) === null && ExpRegularTel.exec($(".telefono").val()) !== $(".telefono").val()) { 
      bootbox.alert({ 
       title: "Error", 
       size: "large", 
       message: "Error, el telefono no es valido.<br> Recuerde que el formato debe ser: xxx-x-xx-xx-xx" 
      }); 
     } else if (ExpRegularCurp.exec($(".curp").val()) !== null && ExpRegularCurp.exec($(".curp").val()) === $(".curp").val()) { 
      bootbox.alert({ 
       title: "Error", 
       size: "large", 
       message: "Error, la CURP no es valido.<br> Recuerde que el formato debe ser: ABCD123456EFGHIJ78" 
      }); 
     } else if (ExpRegularCorreo.exec($(".correo").val()) !== null && ExpRegularCorreo.exec($(".correo").val()) === $(".correo").val()) { 
      bootbox.alert({ 
       title: "Error", 
       size: "large", 
       message: "Error, el correo no es valido." 
      }); 
     } else { 
      $.ajax({ 
       url: "app/modulo/EmpleadosServlet.do", 
       data: $(this).serialize(), 
       type: "POST", 
       success: function (data) { 
        bootbox.alert({ 
         title: "Exito", 
         size: "small", 
         message: data 
        }); 
       }, 
       error: function (x, estado, exception) { 
        bootbox.alert({ 
         title: "Error", 
         size: "small", 
         message: estado + " <br>" + exception 
        }); 
       } 
      }); 
     } 
    }); 

    $("#Eliminar").click(function() { 
     bootbox.confirm({ 
      title: "Confirmación requerida", 
      size: "large", 
      message: "¿Realmente quiere eliminar a este empleado? <br> Nombre: " 
        + nombre + "<br> Telefono: " + telefono + "<br> CURP: " + curp + "<br> Correo: " + correo, 
      callback: function (resultado) { 
       if (resultado) { 
        $.ajax({ 
         url: "app/modulo/EmpleadosServlet.do", 
         data: { 
          event: "1", 
          curp: curp 
         }, 
         type: "POST", 
         success: function (data) { 
          bootbox.alert({ 
           title: "Exito", 
           size: "small", 
           message: data 
          }); 
         }, 
         error: function (x, estado, exception) { 
          bootbox.alert({ 
           title: "Error", 
           size: "small", 
           message: estado + " <br>" + exception 
          }); 
         } 
        }); 
       } 
      } 
     }); 
    }); 
}); 
+1

désolé, je ne pourrais pas voir un initialisation modale bootstrap –

+0

J'utilise des boutons comme celui-ci

Répondre

1

Vous êtes javascript bootstrap manquant .

Essayez d'ajouter cette version CDN ci-dessous pour voir si cela fonctionne. (également la peine d'essayer de garder le modal sur le même .jsp (sans importer/inclure)

<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script> 
+1

J'ajoutais un bootstrap javascript Cependant, j'utilisais le bootstrap bêta 4.0.0 et je changeais le CDN que vous avez fourni: Je suppose que le 4.0.0 n'est pas encore compatible avec les modaux. – Emenor

+0

ouais c'est une erreur honnête. C'est super d'entendre ça fonctionne maintenant! –