javascript - jQuery 验证成功消息在单击每个元素时显示,但是当我提交页面然后返回成功消息时消失了
问题描述
.questionTitle__valid
当我们验证页面上的每个元素时,我有一个显示类的表单。
这是我的代码
$.validator.setDefaults({
highlight: function (e) {
$(e).closest('.questionWrap').addClass('error');
$(e).closest('.questionWrap').find('.questionTitle').removeClass('questionTitle__valid');
},
unhighlight: function (e) {
var qWrap = $(e).closest('.questionWrap');
$(e).closest('.questionWrap').find('.questionTitle').addClass('questionTitle__valid');
if (qWrap.find('.field-validation-error').length == 0) {
$(e).closest('.questionWrap').removeClass("error");
}
},
onclick: function (e) {
this.element(e);
},
ignore: ':hidden:not(.validateHidden)'
});
我的问题是当我提交页面并转到第 2 页然后返回第 1 页时.questionTitle__valid
消失了。
我想如果我在 document.ready 上调用这个
$('.pet_questions:visible').find(":input").valid();
哪个验证是可见元素,但在第一次加载页面时,验证插件会运行并显示所有错误消息。
就像我需要调用验证是否所有元素都已填写,像这样填写
$('.pet_questions:visible').find(":input").each(function () {
if ($(this).val() != "") {
$(this).valid();
}
});
但是如果我添加这个错误消息仍然会在第一页加载时加载
如果所有元素都已在 document.ready 上填写,任何帮助将不胜感激调用 jQuery validate
解决方案
管理对此进行排序,因此当用户返回页面时,如果第一个问题已经得到回答,我会重新验证表单,并且只验证可见的字段。这可能不是一个很好的方法,但似乎对我有用。
if ($(".petspecieradio:checked").length > 0) {
$('.pet_questions:visible').find(":input").valid();
}
推荐阅读
- django - Django REST Serializer 使用错误的模型进行序列化
- python - python文件写入程序运行时如何更新桌面上的文件大小
- javascript - 使用 d3.js 更新表数据
- c# - C#捕获从不在进程中的函数返回的异常?
- r - 如何设置仅在输入 3 时才显示集合向量的函数?
- javascript - 如果 URI 没有改变,例如在单页应用程序上,如何检测用户是否在新页面上?
- angular - Angular Kendo UI 全局访问
- php - 内连接循环通过
- git - 如何 git rebase 从另一个分支直接到 master 分支?
- javascript - 受控数字比例映射