使用Jquery / MVC Forms删除验证

时间:2017-04-04 10:27:59

标签: jquery asp.net-mvc

我正在构建一个应用程序,如果选中了一个复选框,则表单会使用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")

这是一种正确的方法吗?还是我们错过了一些更明显的东西?

1 个答案:

答案 0 :(得分:0)

根据Steven Mueckes的回答:

使用条件验证属性(可在客户端和服务器端工作)。例如万无一失[RequiredIf],或者你可以轻松编写自己的