重新评估远程验证

时间:2017-11-23 11:08:20

标签: jquery asp.net-mvc

我有一个单选按钮和一个下拉列表。

下拉列表是" AM,PM,N \ A"

如果用户勾选单选按钮,则表示半天,因此应选择AM或PM

如果没有勾选单选按钮,那么他们应该选择N \ A(我知道这也可以通过jquery改变但暂时忽略它);

我在模型中对每个模型进行了两次远程验证,将另一个作为附加字段传递。

[Remote("IsHalfDayChange", "Remote", AdditionalFields = "AmPm", HttpMethod = "POST", ErrorMessage = "{0}")]
public bool IsHalfDay { get; set; }

[Remote("AmPmChange", "Remote", AdditionalFields = "IsHalfDay", HttpMethod = "POST", ErrorMessage = "{0}")]
public int AmPm { get; set; }

默认情况下,单选按钮是未选中的(全天),下拉菜单设置为N \ A.

如果用户勾选单选按钮,则远程验证会在下拉列表中正确看到错误的值并显示错误。

如果用户将下拉菜单更改为上午或下午,单选按钮的错误仍然存​​在,因为它没有被重新评估。

当单选按钮或下拉列表更改时,如何使用jquery重新评估远程错误?

1 个答案:

答案 0 :(得分:0)

为了节省性能,除了你想要在所有

下显示错误之外,你可以只评估一个而不是两个。
<script type="text/javascript" name="remoteVal_V1">
    $(document).ready(function () {

        $("#amPmDropDownSelect").change(function () {
            //$("#isHalfDayCheckBox").removeData("previousValue").valid();
            $("#amPmDropDownSelect").removeData("previousValue").valid();
        });

        $("#isHalfDayCheckBox").change(function () {
            //$("#isHalfDayCheckBox").removeData("previousValue").valid();
            $("#amPmDropDownSelect").removeData("previousValue").valid();
        });
    });
</script>