jquery 验证中的忽略选项不起作用
Ignore option in jquery validation doesn't work
我想验证 jquery
中的一些隐藏元素
<label class="btn col-1" style="padding-right:0px;">
<input id="Cert1" asp-for="Cert1.CertImageFile" onchange="SetImagePath('#CertImage1','#Cert1')" type="file" class="fileInput" accept=".jpg, .jpeg, .png" hidden>
<img src="~/images/browse.png" width="23" />
<small><span asp-validation-for="Cert1.CertImageFile" class="text-danger font-weight-bold"></span></small>
</label>
function validateForm() {
// This function deals with validation of the form fields
var x, y, i, valid = true;
x = document.getElementsByClassName("tab");
y = x[currentTab].querySelectorAll("input,select");
// A loop that checks every input feld in the current tab:
var form = $("#regForm");
for (i = 0; i < y.length; i++) {
// If a field is not valid...
if (!form.validate({
ignore: ':hidden:not(.fileInput)'
}).element(y[i])) {
// add an "invalid" class to the field:
y[i].className += " invalid";
// and set the current valid status to false
valid = false;
}
}
return valid; // return the valid status
}
但是即使我设置 ignore: ''
来替换所有忽略选项,忽略选项也不起作用它仍然不会激活隐藏字段
我发现 Unobtrusive 插件会在加载文档时调用 validate() 并将选项设置为默认值。然后缓存一个验证器,任何进一步的验证调用将忽略新选项和return缓存的验证器
所以我在循环验证之前添加了这一行并且它有效
$("#regForm").validate().settings.ignore = ":hidden:not(.fileInput)";
我想验证 jquery
<label class="btn col-1" style="padding-right:0px;">
<input id="Cert1" asp-for="Cert1.CertImageFile" onchange="SetImagePath('#CertImage1','#Cert1')" type="file" class="fileInput" accept=".jpg, .jpeg, .png" hidden>
<img src="~/images/browse.png" width="23" />
<small><span asp-validation-for="Cert1.CertImageFile" class="text-danger font-weight-bold"></span></small>
</label>
function validateForm() {
// This function deals with validation of the form fields
var x, y, i, valid = true;
x = document.getElementsByClassName("tab");
y = x[currentTab].querySelectorAll("input,select");
// A loop that checks every input feld in the current tab:
var form = $("#regForm");
for (i = 0; i < y.length; i++) {
// If a field is not valid...
if (!form.validate({
ignore: ':hidden:not(.fileInput)'
}).element(y[i])) {
// add an "invalid" class to the field:
y[i].className += " invalid";
// and set the current valid status to false
valid = false;
}
}
return valid; // return the valid status
}
但是即使我设置 ignore: ''
来替换所有忽略选项,忽略选项也不起作用它仍然不会激活隐藏字段
我发现 Unobtrusive 插件会在加载文档时调用 validate() 并将选项设置为默认值。然后缓存一个验证器,任何进一步的验证调用将忽略新选项和return缓存的验证器
所以我在循环验证之前添加了这一行并且它有效
$("#regForm").validate().settings.ignore = ":hidden:not(.fileInput)";