我正在构建一个应用程序,如果选中了一个复选框,则表单会使用Jquery
隐藏某些元素:
$('#Rebilled').click(function () {
if ($(this).is(":checked")) {
$('#RebillDate').show();
$('#RebillAmount').show();
$('#TodaysAccountBalance').show();
$('#BalanceAfterRebill').show();
}
else {
$('#RebillDate').hide();
$('#RebillAmount').hide();
$('#TodaysAccountBalance').hide();
$('#BalanceAfterRebill').hide();
}
});
我们正在这些字段上运行服务器端和客户端验证,我们正试图解决仍然在隐藏字段上运行的验证问题,而这些字段在未隐藏时需要它们。
我可以通过使用jquery
删除验证来在客户端解决此问题,但是一旦发布到服务器,服务器拒绝它,因为它们是由于隐藏而导致现在尚未填写的必填字段我的ModelState
无效。
到目前为止,我们能够解决此问题的唯一方法是使用jQuery
将字段的默认值添加到发布到服务器的字段中。类似的东西:
$('#RebillDate').val("01/01/1900")
这是一种正确的方法吗?还是我们错过了一些更明显的东西?
答案 0 :(得分:0)
根据Steven Mueckes的回答:
使用条件验证属性(可在客户端和服务器端工作)。例如万无一失[RequiredIf],或者你可以轻松编写自己的