gpt4 book ai didi

javascript - jQuery 验证插件忽略的元素得到验证

转载 作者:搜寻专家 更新时间:2023-11-01 04:48:40 24 4
gpt4 key购买 nike

我使用 jQuery 验证插件验证表单。如果浏览器支持 HTML5 datetime-local 元素,我希望不验证该输入。一切正常,除了具有忽略类的元素仍然得到验证。

Chrome 中的 HTML(具有本地日期时间支持)

<form action="/Events/EditEventInfo/37" id="EditForm" method="post" novalidate="novalidate"><input name="__RequestVerificationToken" type="hidden" value="bg5O93sGSgPSWzzsaMfKzd0FPWddBBw9ZYC4srs5xBWmJgsBKWjmD2TL0OXyQNwGl1fa7orAp08pCL1RLxzlSdbNWc9YUxxd1rxGrpw0fhgINRnd3vXoCzG5bDhe2ySk77kXfCfyEJvy-uvYRIbA8Q2">    <div class="form-horizontal">
<div class="form-group">
<label for="StartDate" class="control-label col-md-2">Startdatum</label>
<div class="col-md-10">
<input id="StartDate" name="StartDate" class="form-control ignore error" type="datetime-local" required="" aria-required="true" aria-invalid="true"><label id="StartDate-error" class="error" for="StartDate">Bitte geben sie ein Datum im Format 'dd.MM.yyyy HH:mm' an.</label>
</div>
</div>

<div class="form-group">
<label for="EndDate" class="control-label col-md-2">Enddatum</label>
<div class="col-md-10">
<input id="EndDate" name="EndDate" class="form-control ignore error" type="datetime-local" required="" aria-required="true"><label id="EndDate-error" class="error" for="EndDate">Bitte geben sie ein Datum im Format 'dd.MM.yyyy HH:mm' an.</label>
</div>
</div>

<div class="form-group">
<label for="Name" class="control-label col-md-2">Name</label>
<div class="col-md-10">
<input id="Name" name="Name" class="form-control valid" value="Party. Yolo." type="text" minlength="2" required="" aria-required="true">

</div>
</div>
<div class="form-group">
<div class="col-md-offset-2 col-md-10">
<input type="submit" value="Speichern" class="btn btn-default">
</div>
</div>
</div>

脚本:

<script type="text/javascript">    
$.validator.addMethod(
"deDateTime",
function (value, element) {
//dd.MM.yyyy HH:mm
var re = /^\d{2}\.\d{2}\.\d{4} \d{2}:\d{2}$/;
return (this.optional(element) && value == "") || re.test(value);
},
"Bitte geben sie ein Datum im Format 'dd.MM.yyyy HH:mm' an."
);
if (DateTimeLocalSupport())
{
$('#StartDate').val("@Model.StartDate.ToString("s")");
$('#EndDate').val("@Model.EndDate.ToString("s")");
//HTML5 input types are available, no need to validate those fields
$('#StartDate').addClass("ignore");
$('#EndDate').addClass("ignore");
}
else
{
$('#StartDate').val("@Model.StartDate.ToString("dd.MM.yyyy HH:mm")");
$('#EndDate').val("@Model.EndDate.ToString("dd.MM.yyyy HH:mm")");
}
$('#EditForm').validate({
ignore: ".ignore :hidden",
rules: {
StartDate: {
deDateTime: true
},
EndDate: {
deDateTime: true
}
}
});
alert("Valid: " + $('#EditForm').valid());

</script>

检查 HTML5 支持、填充字段和添加类工作正常。只有验证插件仍然验证它不应该验证的元素。

解决方法:

ignore: '.ignore, :hidden'

最佳答案

ignore: ".ignore :hidden" 告诉它忽略 hidden 类为 ignore 的字段。

ignore: ".ignore" 会告诉它只忽略 .ignore 类的字段。

ignore: ".ignore, :hidden" 将告诉它忽略字段将类 .ignore 和隐藏的字段。


根本不指定 ignore 选项,默认值为 ignore: ":hidden",它只会忽略隐藏字段。

设置为 ignore: [] 告诉插件忽略任何内容并验证所有内容。

关于javascript - jQuery 验证插件忽略的元素得到验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24554332/

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