jQuery Validate 插件在 CodeIgniter 中不起作用



我正在尝试在CodeIgniter项目的视图中使用jQuery Validing插件,使用与许多示例完全相同的Internet,但根本不起作用!我使用了很多在StackOverflow和其他站点中找到的sugerence,但不起作用。这是我的代码:

<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>

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 会自动捕获submit按钮的click事件并完全处理提交,因此您绝对不需要任何其他事件处理程序。 删除整个click处理程序...不需要。

    $("#submit").click(function() {     // REMOVE THIS
    $("#formIngEmpresa").submit();  // REMOVE THIS
    return false;                   // REMOVE THIS
    });                                 // REMOVE THIS
    

工作演示:jsfiddle.net/wtdhvtc7/

首先更新表单
的 ID 而不是如果这样

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

<form  id="formIngEmpresa">

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

最新更新