Javascript lightswitch html客户端输入验证未更新
我有一个输入来输入一些数据,并希望使用javascript对其进行验证。我使用以下代码: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 = [
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时仍然进行了验证。我必须在数据源中要求该字段