我在从使用jQuery验证和jQuery不引人注目的表单的字段中删除“必需”字段验证时遇到了麻烦。
我有以下剃刀视图-
<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; }
我尝试了以下操作以使该字段为非必填字段-
但是,仍然将该字段标记为提交时必填。
任何人都可以提出一种我不需要此字段的建议。
谢谢
答案 0 :(得分:0)
对于结构,RequiredAttribute
仅更改错误消息,始终需要属性。
如果您不希望使用它们,则需要将它们设置为可空:
[Range(100, Double.PositiveInfinity, ErrorMessage = "The minimum amount for this event is £100")]
public double? TargetNumber { get; set; }
答案 1 :(得分:0)
您必须像这样使用jQuery为您的媒体资源设置规则:
$('#myForm').validate({
rules: {
TargetNumber: {
required: function (element) {
return false;
}
}
}
});
TargetNumber应该是name属性,而不是id属性。我认为对于MVC,它会根据模型名称自动分配name属性,但是请检查开发人员工具以查看为name属性分配了什么值。