ASP.. NET mvc客户端验证
ASP.NET MVC5 Client-side Validation
如果复选框被选中,则视图中需要一个amount字段。
一旦Razor呈现带有模型数据的视图,并且用户选中了一个没有输入相应数量的复选框。出现Validation消息。如果我取消选中该复选框,验证消息不会消失。
我已经尝试使用jquery删除所有生成的规则,但如果用户再次选择复选框,在返回之前,这些验证规则将被删除(除非我存储它们…这真是太难看了
是否有一种可接受的方式来重新验证客户端与MVC模型中的相同要求?
模型:
[Display(Name = "Include Amount")]
public bool IncludeAmount { get; set; }
[Display(Name = "Amount")]
[RequiredIf("IncludeAmount", TargetValue = true, ErrorMessage = "Amount is required.")]
[MaxDigits(10, 2)]
[RegularExpression(RegularExpressions.Money, ErrorMessage = ErrorMessages.NumericValueInvalidFormat)]
[GreaterThanZero]
public Nullable<decimal> Amount { get; set; }
视图:
<td class="dataEntryLabel" colspan="2">
@Html.LabelFor(model => model.IncludeAmount)
</td>
<td class="dataEntryField" colspan="2">
@Html.CheckBoxFor(model => model.IncludeAmount, new { id = "IncludeAmount" })
<span class="dollar-sign">@Html.TextBoxFor(model => model.Amount, "{0:F}", new { id = "Amount", disabled = "disabled" })</span>
@Html.ValidationMessageFor(model => model.Amount)
</td>
JavaScript(客户端):
function fixUnobtrusiveValidations() {
var form = getForm();
(<any>$).validator.unobtrusive.parse(form);
}
function onClickCheckBoxIncludeAmount(){
fixUnobtrusiveValidations();
}
$('IncludeAmount').click(onClickCheckBoxIncludeAmount);
尝试禁用onclick事件的客户端验证参考:https://jqueryvalidation.org/validate/onclick
$("#myform").validate({
onclick: false,
});
或
$("#yourChkboxID").validate({
onclick: false,
});
成功了:
if (!($('#IncludeAmount').checked)){
toggleValidatorVisibility($('#Amount'), false);
}
function toggleValidatorVisibility(element: any, value) {
var td: any = element.closest('td');
if (value) {
td.find('span.field-validation-error').show();
} else {
td.find('span.field-validation-error').empty();
}
}
相关文章:
- 客户端单选按钮列表验证
- 如何在不使用mvc 4中的模型的情况下进行客户端验证
- ServiceStack JavaScript服务器事件客户端的身份验证
- MVC客户端验证的某个位置缺少链接
- 从javascript客户端验证REST服务
- asp.net web表单客户端验证始终回发
- 如何在文本框中验证客户端的youtube url
- 如何验证客户端上的Javascript没有被更改
- 检查验证组是否有效,而不启动验证客户端
- Ember用户身份验证(客户端和服务器端完全分离)
- 是否不可能通过/Regex_syntax/.test(str_to_test)验证客户端输入,其中Regex_synta
- 调试不显眼的验证(客户端)
- Asp.net MVC日期时间动态验证客户端日期格式
- 尝试访问HTML5电子邮件验证客户端
- 验证客户端日期范围
- 表单验证客户端和服务器端
- 如何验证客户端中文本框值的总和
- 验证客户端AngularJS上输入的图像文件维度
- JSON Web令牌(JWT)-验证客户端
- MVC 5 - 验证客户端上的特定字段