jquery - 在 MVC 5 中,如何根据另一个下拉值删除所需的属性?
问题描述
目前,表单正在按预期工作,直到您提交带有值为“2”的 Usage_Status 下拉选择的表单,然后切换到任何其他值并再次提交。javascript 验证消息“分配的用户字段是必需的。” 在下拉列表中切换值并再次提交后出现并且不会消失。是否可以删除所需的属性,或者在选择“2”的条件下设置它?
HTML:
<div class="row">
<div class="form-group col-sm-4">
@Html.LabelFor(model => model.Usage_Status, new { @class = "control-label col-md-12" })
<div class="col-md-10">
@Html.DropDownList("Usage_Status", new SelectList(statuses, "ID", "Name"), new { @class = "form-control" })
@Html.ValidationMessageFor(model => model.Usage_Status)
</div>
</div>
<div class="form-group col-sm-4">
@Html.LabelFor(model => model.Assigned_User, new { @class = "control-label col-md-12" })
<div class="col-md-10">
@Html.EditorFor(model => model.Assigned_User, new { htmlAttributes = new { @class = "form-control" } })
@Html.ValidationMessageFor(model => model.Assigned_User)
</div>
</div>
<div class="form-group col-sm-4">
@Html.LabelFor(model => model.Department, new { @class = "control-label col-md-12" })
<div class="col-md-10">
@Html.DropDownList("Department", new SelectList(departments, "ID", "Name"), string.Empty, new { @class = "form-control" })
@Html.ValidationMessageFor(model => model.Department)
</div>
</div>
</div>
JavaScript:
$(document).ready(function () {
$('#Usage_Status').change(function (e) {
//If item is being used, require a user and department. Otherwise, disabled those fields.
if ($('#Usage_Status').val() == "2") {
$('#Assigned_User').rules('add', 'required');
$('#Assigned_User').removeAttr('disabled');
} else {
$('#Assigned_User').rules('remove', 'required');
$('#Assigned_User').removeAttr('required');
$('#Assigned_User').attr('disabled', 'disabled');
}
});
解决方案
如果您正在进行条件验证,例如表单中的一个字段的值定义了另一个字段的验证,则您需要一个额外的库。我使用富有表现力的注释
推荐阅读
- gpu - slurm 集群中的 gpucompute* 已关闭*
- java - 计算整数真数的最佳性能实现?
- javascript - jQuery .toggle() 按钮需要被点击两次
- python - 自定义插值/最小化函数(又名曲线拟合)任何库
- javascript - 在这种情况下,我可以在兄弟组件之间共享数据吗?
- python - django rest 框架序列化程序中的关系数据库
- javascript - 深度学习——检测电线杆的特征
- javascript - 如何使用 JavaScript 定期打开 URL?
- android - 没有为“流”类型定义吸气剂“数据”
' - java - 在没有注释的情况下将 json 反序列化为 Jackson 中的引用字符串