gpt4 book ai didi

jQuery 验证 - form.valid() 始终返回 true

转载 作者:行者123 更新时间:2023-12-03 22:31:58 27 4
gpt4 key购买 nike

当我尝试检查表单是否有效时,我遇到了一种情况,但 form.valid() 始终返回 true。但如果我尝试验证单个控件,它会返回 false。

这是我的表格:

<div class="profilestagsedit">
@using (Html.BeginForm("", "", FormMethod.Post, new { id = "tagsform" }))
{
@Html.ValidationMessageFor(x => x.EditTagsText)
@Html.TextBoxFor(p => p.EditTagsText, new
{
@id = "txtprofileedittags"
})
}
</div>

这是我的 View 模型:

[Required(AllowEmptyStrings = false, ErrorMessage = "Please enter at least one Tag ")]
public string EditTagsText { get; set; }

这是 jQuery 代码:

   $('#tagsform').removeData("validator");
$('#tagsform').removeData("unobtrusiveValidation");
$.validator.unobtrusive.parse('#tagsform');
$('#tagsform').validate();

然后单击“保存”按钮:

var isValid = $('#tagsform').validate().element($('#txtprofileedittags')); <-- false
$('#tagsform').valid() true <--

我希望 form.valid() 也返回 false,我做错了什么?

最佳答案

这个问题已经有一个公认的答案,但我相信我已经找到了更具体的答案。我发现,如果表单中第一个经过验证的元素具有“名称”标签,那么一切都会按您的预期工作(也就是说,如果表单无效,.valid() 将返回 false)。接受的答案方便地包含“名称”标签,因此它有效。

在正常形式中,您肯定需要名称标签,因为这是将数据提交到服务器时使用的名称标签。但在更现代的环境中,例如使用 Knockout 的环境,没有理由使用“名称”标签,因为数据绑定(bind)可以保持数据模型更新。

关于jQuery 验证 - form.valid() 始终返回 true,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20672406/

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