gpt4 book ai didi

javascript - jQuery 使用附加的表单元素进行验证

转载 作者:行者123 更新时间:2023-12-03 00:23:38 26 4
gpt4 key购买 nike

我已经阅读了 SO 上的四个相关答案,它们构成了我在这里尝试的动态验证的主要部分。

我有一个包含一些动态操作的表单,例如添加和删除包含用户研究或体验的 block (div)。每个 block 都包含一些我需要验证的元素。

仅当您聚焦并提交表单时,对附加元素的验证才会起作用,在此之前,如果您不聚焦于例如“study_5”的元素并提交表单,它将毫无问题地提交(即使如果它有所需的标签)

这是我的 JS:

var multiple_formation_max_fields = 10;
var multiple_formation_wrapper = $(".multiple-formation");
var multiple_formation_add_button = $(".add_formation");

var x = {{ Auth::user()->candidate and Auth::user()->candidate->certifications->count() > 0 ? Auth::user()->candidate->certifications->count() + 1 : 1}};
$(multiple_formation_add_button).click(function (e) {
e.preventDefault();
if (x < multiple_formation_max_fields) {
x++;
$(multiple_formation_wrapper).append(
'<div class="sub-form">' +
// deleted unusfull code
'<div class="col-lg-6">' +
'<span class="pf-title">Établissement</span>' +
'<div class="pf-field">' +
'<input type="text" class="form-control" required id="formation_establishment_'+x+'" placeholder="ISET, Esprit, .. " name="formation_establishment[]">' +
// deleted unusfull code
'</div>' +
'</div>' +
'</div>'
);
}
$('.date').dateDropper();
$(".chosen").chosen();
$('#formation_establishment_'+x).rules('add', {
'required': true
});
$('#form').validate();

});

结果就好像我单击“提交”而不关注附加到表单的第二个元素: enter image description here

第一个经过验证的元素有效,因为它主要位于页面上。第二个没有。第三个之所以有效,是因为我在专注于那里时按下了提交。

最佳答案

jQuery Validate 插件正常运行:

  1. 在页面加载时通过 .validate() 方法在表单上初始化插件。不要在click处理程序中初始化表单(不要调用.validate()方法)。

  2. 通过 .rules() 方法向动态添加的表单字段添加规则。

您不能在步骤 1 之前执行步骤 2。

<小时/>

您在 .rules() 之后调用 .validate(),并且它位于 click 处理程序内。 .validate() 方法是表单上插件的初始化,并且只能在加载页面时调用一次

在使用 .validate() 初始化表单之前,您永远不能调用 .rules() 方法。

因此,将 .validate() 完全从 click 处理程序中取出,并且仅在文档就绪处理程序中调用一次。

关于javascript - jQuery 使用附加的表单元素进行验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54197010/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com