如何使用 jQuery 不显眼的验证从表单字段中删除 'required' 设置
How to remove 'required' setting from form field using jQuery unobtrusive validation
我在从使用 jQuery 验证且 jQuery 不显眼的表单字段中删除 'required' 字段验证时遇到一些问题。
我有以下剃须刀视图 -
<div class="form-group @Html.Raw(Html.HasError(x => x.TargetNumber) ? "has-error" : null)">
<div class="col-md-12">
<p><strong>How much will you raise</strong></p>
</div>
<div class="col-sm-6">
@Html.TextBoxFor(x => x.TargetNumber, new { id = "TargetNumber", @class = "form-control", placeholder = "Target", type = "number", Value="Target" })
@Html.ValidationMessageFor(x => x.TargetNumber, null, new { @class = "error" })
</div>
</div>
并查看模型
[Required(ErrorMessage = "Please enter a valid value.")]
[Range(100, Double.PositiveInfinity, ErrorMessage = "The minimum amount for this event is £100")]
public double TargetNumber { get; set; }
我尝试了以下方法使该字段成为非必填字段 -
- 删除了 [Required] 属性,但该字段仍然采用表单
标记使用各种数据属性呈现并且是必需的
- 在视图
中向'TextBoxFor'添加了data_val="false"(并且需要="false")
然而,该字段在提交时仍被标记为必填项。
任何人都可以建议我可以使该字段成为非必填字段的方法。
谢谢,
对于结构,RequiredAttribute
仅更改错误消息,属性始终是必需的。
如果您不希望它们成为必需项,则需要使它们可为空:
[Range(100, Double.PositiveInfinity, ErrorMessage = "The minimum amount for this event is £100")]
public double? TargetNumber { get; set; }
您必须使用 jQuery 为您的 属性 设置规则,如下所示:
$('#myForm').validate({
rules: {
TargetNumber: {
required: function (element) {
return false;
}
}
}
});
TargetNumber 应该是 name 属性而不是 id 属性。我认为对于 MVC,它会根据模型名称自动分配名称属性,但请检查您的开发人员工具以查看分配给名称属性的值。
我在从使用 jQuery 验证且 jQuery 不显眼的表单字段中删除 'required' 字段验证时遇到一些问题。
我有以下剃须刀视图 -
<div class="form-group @Html.Raw(Html.HasError(x => x.TargetNumber) ? "has-error" : null)">
<div class="col-md-12">
<p><strong>How much will you raise</strong></p>
</div>
<div class="col-sm-6">
@Html.TextBoxFor(x => x.TargetNumber, new { id = "TargetNumber", @class = "form-control", placeholder = "Target", type = "number", Value="Target" })
@Html.ValidationMessageFor(x => x.TargetNumber, null, new { @class = "error" })
</div>
</div>
并查看模型
[Required(ErrorMessage = "Please enter a valid value.")]
[Range(100, Double.PositiveInfinity, ErrorMessage = "The minimum amount for this event is £100")]
public double TargetNumber { get; set; }
我尝试了以下方法使该字段成为非必填字段 -
- 删除了 [Required] 属性,但该字段仍然采用表单 标记使用各种数据属性呈现并且是必需的
- 在视图 中向'TextBoxFor'添加了data_val="false"(并且需要="false")
然而,该字段在提交时仍被标记为必填项。
任何人都可以建议我可以使该字段成为非必填字段的方法。
谢谢,
对于结构,RequiredAttribute
仅更改错误消息,属性始终是必需的。
如果您不希望它们成为必需项,则需要使它们可为空:
[Range(100, Double.PositiveInfinity, ErrorMessage = "The minimum amount for this event is £100")]
public double? TargetNumber { get; set; }
您必须使用 jQuery 为您的 属性 设置规则,如下所示:
$('#myForm').validate({
rules: {
TargetNumber: {
required: function (element) {
return false;
}
}
}
});
TargetNumber 应该是 name 属性而不是 id 属性。我认为对于 MVC,它会根据模型名称自动分配名称属性,但请检查您的开发人员工具以查看分配给名称属性的值。