我有一个模特:
[Required(ErrorMessage = "Dit veld is verplicht")]
[Range(60, 60000, ErrorMessage = "De waarde moet tussen de 60 en 60000 liggen")]
public double? Kilometers { get; set; }
[Required(ErrorMessage = "Dit veld is verplicht")]
public int? Minutes { get; set; }
我的HTML:
<div class="control-group container-trigger" id="container-distance">
<label class="control-label" for="trigger-distance">Aantal kilometers</label>
<div id="distance" class="controls">
@Html.TextBoxFor(m => m.Alert.Kilometers, new { id = "trigger-distance", @name = "trigger-distance" })
@Html.ValidationMessageFor(m => m.Alert.Kilometers, "", new { @class = "error-0" })
</div>
</div>
<div class="control-group container-trigger" id="container-minutes">
<label class="control-label" for="trigger-minutes">Aantal minuten</label>
<div id="minutes" class="controls">
@Html.TextBoxFor(m => m.Alert.Minutes, new { id = "trigger-minutes", @name = "trigger-minutes" })
@Html.ValidationMessageFor(m => m.Alert.Minutes, "", new { @class = "error-0" })
</div>
</div>
我有一个下拉列表,如果我做出选择,我需要它来显示一个文本框。如果我选择第一个选项,它将显示一个文本框几分钟。如果我选择第二个选项,它将显示距离的文本框。我所拥有的是,如果我单击提交按钮,我会收到表单中未显示的文本框的验证错误,但只有在显示它们时才需要它们!
我该怎么做才能解决这个问题?
答案 0 :(得分:1)
条件验证将帮助您实现所需的http://foolproof.codeplex.com/
答案 1 :(得分:0)
您已使用[required]属性进行了所需操作。因此,如果您没有为其中任何一个设置值,它将抛出客户端验证。 您必须删除“required”属性或从html中删除“ValidationMessageFor”
答案 2 :(得分:0)
我假设您使用jquery进行不显眼的验证?如果是这样,您可以使用$ .validator.defaults.ignore属性指定在验证期间应忽略的任何选择器,例如:
$.validator.defaults.ignore = ':disabled,:hidden,.ignore';
请确保在此处展开与隐藏控件相匹配的内容。