jquery - jQuery Validate 插件未按预期工作
问题描述
我正在尝试为登录页面设置验证,但无法手动设置消息。测试如下:
$("#botonEnviar").click(function() {
//alert("Button push works");
$("#loginform").validate({
rules: {
_username: {
required: true
},
_password: {
required: true
}
},
messages: {
_username: {
required: "El campo DNI no puede estar vacío"
},
_password: {
required: "El campo contraseña no puede estar vacío"
}
}
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/jquery-validation@1.17.0/dist/jquery.validate.min.js"></script>
<form id="loginform" class="login-form" action="{{ path('login') }}" method="post">
<div class="form-group">
<div class="input-icon">
<i class="fa fa-user"></i>
<input class="form-control placeholder-no-fix" type="text" autocomplete="off" placeholder="DNI" name="_username" />
</div>
</div>
<div class="form-group">
<div class="input-icon">
<i class="fa fa-lock"></i>
<input class="form-control placeholder-no-fix" type="password" autocomplete="off" placeholder="contraseña" name="_password" />
</div>
</div>
<div class="form-actions">
<button id="botonEnviar" type="submit" class="btn green pull-right">Acceder </button>
</div>
</form>
激活(单击)按钮时,我根本没有收到任何错误(只有当我取消注释时才会发出警报),但是当我设置 class="required" 或所需的属性时,我收到错误“此字段是必需的”。即使在我删除整个脚本后也会显示。我想覆盖这个默认值。换句话说,我希望能够显示我的自定义消息(“El campo DNI no puede estar vacío”或“El campo contraseña no puede estar vacío”)。我已经阅读了文档和类似的问题(我知道很多),但是我提供的解决方案没有得到任何结果,所以我希望你能以某种方式帮助我。谢谢
额外的,以防有帮助
alert($("#loginform").validate().form());
即使在我用空字段单击它后也返回 true。
编辑:表单独立于 javascript 验证本身可以正常工作。它在数据正确时记录并在登录不起作用时刷新页面。所以没问题
EDIT2:起初我使用的是:
<script src="{{ asset('assets/global/plugins/jquery.min.js') }}" type="text/javascript"></script>
<script src="{{ asset('assets/global/plugins/jquery-validation/js/jquery.validate.min.js') }}" type="text/javascript"></script>
在我将那些更改为编辑后的工作完美之后。
EDIT3:当我注意到这是一个订单问题时,我对我的项目的进口进行了一些研究。Jquery 库是第一个,就在引导库之前。让他们再次与旧图书馆合作。如果没有你的帮助,我不会达到这个目标,再次感谢!
解决方案
您的代码在片段中似乎没问题,问题可能出在开发环境中,另一个错误可能是阻止代码运行?
另外点击按钮时你也不需要做任何事情,因为已经有一个type="submit"
按钮触发的“提交”事件,插件会自动检查你的表单是否有效。
如果你需要对按钮做一些事情,你需要删除类型提交,点击时检查表单是否有效,如下所示:
$(function() {
$("#loginform").validate({
rules: {
_username: {
required: true
},
_password: {
required: true
}
},
messages: {
_username: {
required: "El campo DNI no puede estar vacío"
},
_password: {
required: "El campo contraseña no puede estar vacío"
}
}
});
$("#botonEnviar").click(function () {
if( $("#loginform").valid() ) {
alert('seems ok!!');
}
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/jquery-validation@1.17.0/dist/jquery.validate.min.js"></script>
<form id="loginform" class="login-form" action="{{ path('login') }}" method="post">
<div class="form-group">
<div class="input-icon">
<i class="fa fa-user"></i>
<input class="form-control placeholder-no-fix" type="text" autocomplete="off" placeholder="DNI" name="_username" />
</div>
</div>
<div class="form-group">
<div class="input-icon">
<i class="fa fa-lock"></i>
<input class="form-control placeholder-no-fix" type="password" autocomplete="off" placeholder="contraseña" name="_password" />
</div>
</div>
<div class="form-actions">
<button id="botonEnviar" type="button" class="btn green pull-right">Acceder </button>
</div>
</form>
推荐阅读
- java - 无法在 Android 中发送带有 PDF 文件作为附件的电子邮件
- time-complexity - if 在 for 循环中的时间复杂度
- python - Python pandas - 按A列分组并防止b列重复存在?
- python - python错误“无法根据规则'same_kind'将数组数据从dtype('O')转换为dtype('float32')”
- javascript - 询问如何从 firebase 获取反应数据
- macos - 将音频数据从 c 应用程序路由到 mac os 中的虚拟音频驱动程序
- c++ - 创建线程但出现进程?
- php -
- ios - 如何将数据从视图控制器传递到另一个表视图?
- r - LDA,未找到对象