Javascript lightswitch html客户端输入验证未更新

Javascript lightswitch html客户端输入验证未更新,javascript,validation,visual-studio-lightswitch,Javascript,Validation,Visual Studio Lightswitch,我有一个输入来输入一些数据,并希望使用javascript对其进行验证。我使用以下代码: myapp.AddEditHaendlerItem.beforeApplyChanges = function (screen) { // check PLZ if (screen.HaendlerItem.PLZ != "12345") { screen.findContentItem("PLZ").validationResults = [

我有一个输入来输入一些数据,并希望使用javascript对其进行验证。我使用以下代码:

myapp.AddEditHaendlerItem.beforeApplyChanges = function (screen) {


    // check PLZ
    if (screen.HaendlerItem.PLZ != "12345") {

        screen.findContentItem("PLZ").validationResults = [
            new msls.ValidationResult(
                screen.HaendlerItem.details.properties.PLZ,
                "PLZ muss eine Zahl und 5 Zeichen lang sein.")
        ];

        return false;

    }
};
但我不知道,如何删除验证结果。例如,如果用户更正了输入,验证错误仍然会出现。我怎样才能删除它


谢谢

由于错误不会自动从内容项的validationResults数组中删除,因此需要手动删除它

我们通常采取的方法是在contentItem中添加一个dataBind更改处理程序,以便在用户“制表符”关闭条目时重置validationResults。当用户保存并执行beforeApplyChanges函数时,将重新应用任何剩余的错误

以下片段重点介绍了这种方法:-

myapp.AddEditHaendlerItem.PLZ_postRender = function (element, contentItem) {
    contentItem.dataBind("value", function (value) {
        contentItem.validationResults = [];
    });
};

myapp.AddEditHaendlerItem.beforeApplyChanges = function (screen) {
    // check PLZ
    if (screen.HaendlerItem.PLZ != "12345") {
        screen.findContentItem("PLZ").validationResults = [
            new msls.ValidationResult(
                screen.HaendlerItem.details.properties.PLZ,
                "PLZ muss eine Zahl und 5 Zeichen lang sein."
            )
        ];
        return false;
    }
};
此外,如果您希望向用户提供更直接的反馈,您可以将验证测试移动到更改处理程序中,如下所示:-

myapp.AddEditHaendlerItem.PLZ_postRender = function (element, contentItem) {
    contentItem.dataBind("value", function (value) {
        contentItem.validationResults = [];
        // check PLZ
        if (value != "12345") {
            contentItem.validationResults = [
                new msls.ValidationResult(
                    contentItem.details,
                    "PLZ muss eine Zahl und 5 Zeichen lang sein."
                )
            ];
        }
    });
};

这将在用户“标记”条目时执行验证,而不是延迟检查,直到用户保存。

您是否尝试从阵列中删除对象?@jvh我建议的答案是否有助于解决您的问题?我遇到了一个问题,上面的问题无法解决。客户端在点击save时仍然进行了验证。我必须在数据源中要求该字段