提问人:nick_b 提问时间:7/15/2023 更新时间:7/17/2023 访问量:9
为什么 JQuery Validation 会在失败时从不相关的下拉列表中清除值?
Why would JQuery Validation clear values from an unrelated dropdown on fail?
问:
此 ASP.NET Core 7/Razor 页面项目使用 JQuery 验证和不显眼验证。相关页面有一个 [必填] 文本输入字段和 2 个下拉列表(这些列表未标记为 [必填])。这些列表在 GET 页上填充了模型的其余部分。可以按预期编辑每个字段并更改下拉值。
当我通过删除必填字段中的文本来强制验证失败时,会显示预期的错误消息 - 但是 2 个下拉列表已丢失其所有值并已恢复为默认文本。没有发生回发,这是我认为验证失败的正确行为,但 html 已更改。
验证失败前的 Html:
<div class="form-group">
<label class="form-label" for="engagement_CoachingModelId">Coaching model</label>
<select class="form-control" aria-required="true" id="engagement_CoachingModelId" name="engagement.CoachingModelId">
<option value="">Please select coaching model</option>
<option value="0">None</option>
<option selected="selected" value="1">Model 1</option>
<option value="3">Model 3</option>
<option value="4">Model 4</option>
</select>
</div>
验证失败后的 Html:
<div class="form-group">
<label class="form-label" for="engagement_CoachingModelId">Coaching model</label>
<select class="form-control" aria-required="true" id="engagement_CoachingModelId" name="engagement.CoachingModelId">
<option value="">Please select coaching model</option>
</select>
</div>
我在这里错过了什么?
答:
0赞
nick_b
7/17/2023
#1
我做错了两件事:
首先,
<partial name="_ValidationScriptsPartial" />
标记位于布局文件中的 jQuery 脚本标记之前。我可以通过检查控制台错误来看到这一点。不知道为什么,但我仍然收到初始验证错误消息,但它随后正在进行回发,但是......
其次,隐藏代码中的 on post 方法名称错误,因此它正在回发,但我的方法没有捕获它。
修复这 2 个错误解决了问题。希望有一天这对其他人有用。
评论