jQuery Validate插件在CodeIgniter中不起作用

时间:2017-03-21 19:33:03

标签: javascript jquery jquery-validate

我试图在CodeIgniter项目的视图中使用jQuery Validate plugin,就像许多Internet上的例子一样,但根本不起作用!我在StackOverflow和其他网站上使用了很多sugerences,但是没有用。这是我的代码:

<script src="<?php echo base_url(); ?>js/jquery-validation-1.16.0/dist/jquery.validate.js"></script>
<body>
<section class="content">
      <div class="row">
        <!-- left column -->
        <div class="col-md-6">

          <!-- general form elements -->
          <div class="box box-primary">
            <div class="box-header with-border">
              <h3 class="box-title">Ingresar nueva empresa</h3>
            </div>
            <!-- /.box-header -->
            <!-- form start -->
            <form  id="formIngEmpresa">

                <!-- RESPUESTA DE FORMULARIO -->

                <!-- FIN RESPUESTA DE FORMULARIO -->

              <div class="box-body">
                <div class="form-group">
                  <label for="usuario_login">Nombre o Razón Social de la empresa</label>
                  <input type="input" class="form-control" id="nm_rs_empresa" placeholder="Ingrese login">
                </div>
                <div class="form-group">
                  <label for="usuario_password">Rut empresa</label>
                  <input type="input" class="form-control" id="nr_rut_empresa" placeholder="rut">
                </div>
                <div class="form-group">
                  <label for="usuario_password2">Descripcion empresa</label>
                  <input type="text" class="form-control" id="nm_desc_empresa" placeholder="Password">
                </div>
                <div class="form-group">
                  <label for="usuario_nm_usuario">Rubro de la empresa</label>
                  <input type="input" class="form-control" id="nm_rubro" placeholder="Ingrese nombres">
                </div>

                </div>
              </div>
              <!-- /.box-body -->

              <div class="box-footer">
                <button type="submit" class="btn btn-primary">Ingresar</button>
                <button type="reset" class="btn btn-default">Cancelar</button>

              </div>
            </form>
          </div>
          <!-- /.box -->

      </div>
      <!-- /.row -->
    </section>
    </body>
<script>



$(function() {
  // Initialize form validation on the registration form.
  // It has the name attribute "registration"
  alert($("#formIngEmpresa").validate().form());
  $("#formIngEmpresa").validate({
    // Specify validation rules
    rules: {
      // The key name on the left side is the name attribute
      // of an input field. Validation rules are defined
      // on the right side
      nm_rs_empresa: "required",
      nr_rut_empres: "required",
      nm_desc_empresa: "required",
      nm_rubro: "required"

    },
    // Specify validation error messages
    messages: {
      nm_rs_empresa: "Porfavor introducir nombre empresa",
      nr_rut_empres: "Por favor introducir rut",
      nm_desc_empresa: "Por favor introducir una Descripcion",
      nm_rubro: "Elija el rubro de la empreesa",

    },
    // Make sure the form is submitted to the destination defined
    // in the "action" attribute of the form when valid
    submitHandler: function(form) {
      form.submit();
    }
  });
   $("#submit").click(function(){
            $("#formIngEmpresa").submit();
            return false;
    });
});
    </script>

2 个答案:

答案 0 :(得分:0)

首先更新表格的身份
相反,如果这个

<form  id="https://cdn.jsdelivr.net/jquery.validation/1.15.1/jquery.validate.min.js">

<form  id="formIngEmpresa">

这是您的第一个错误,表单的ID必须与JQuery方法$("#formIngEmpres").validate()匹配,其中formIngEmpres是表单的ID。

答案 1 :(得分:0)

  

jQuery Validate插件在CodeIgniter中不起作用

是的,它没有。 jQuery是JavaScript,它只能在浏览器中运行,而CodeIgniter只能在服务器上运行。换句话说,只要您将正确的HTML标记发送到浏览器,您的框架对JavaScript无关紧要。

这就是你遇到困难的原因......

  1. 必须在每个考虑进行验证的输入上都有name属性,这些名称必须与您在声明规则时使用的名称完全匹配。甚至你的代码评论都说同样的事情!

    rules: {
        // The key name on the left side is the name attribute <-- READ HERE!!
        // of an input field. Validation rules are defined
        // on the right side
        nm_rs_empresa: "required", // <- 'nm_rs_empresa' must match the 'name' attribute
        ....
    
  2. click处理程序可以绕过插件。由于jQuery Validate会自动捕获click按钮的submit事件并完全处理提交,因此您绝对不需要任何其他事件处理程序。删除整个click处理程序......不需要它。

    $("#submit").click(function() {     // REMOVE THIS
        $("#formIngEmpresa").submit();  // REMOVE THIS
        return false;                   // REMOVE THIS
    });                                 // REMOVE THIS
    
  3. 工作演示:jsfiddle.net/wtdhvtc7/