我想在添加/编辑时验证列表项的字段并停止保存操作并提供用户在该页面本身上所做的错误信息。
例如,如果我想阻止用户在保存之前根据另一个字段的特定状态保留几个字段设置,我不能将该字段设置为必填字段。
使用预保存操作。
将名为 PreSaveAction 的 javascript 函数添加到您的页面(最好是创建自定义列表模板并且可以修改将用作 EditForm 和 NewForm 的 aspx 页面,否则尝试使用内容编辑器 Web 部件或修改母版页)从那里进行所有自定义验证。
例如,我刚刚在一个项目中使用了它,其中 3% 的字段必须等于 100%。我使用了以下 JavaScript,效果很好:
function getTagFromIdentifierAndTitle(tagName, identifier, title) {
var len = identifier.length;
var tags = document.getElementsByTagName(tagName);
for (var i = 0; i < tags.length; i++) {
var tempString = tags[i].id;
if (tags[i].title == title && (identifier == "" || tempString.indexOf(identifier) == tempString.length - len)) {
return tags[i];
}
}
return null;
}
function PreSaveAction() {
var top = getTagFromIdentifierAndTitle("input", "TextField", "Top %");
var middle = getTagFromIdentifierAndTitle("input", "TextField", "Middle %");
var bottom = getTagFromIdentifierAndTitle("input", "TextField", "Bottom %");
var valid = (100 == parseInt(top.value) + parseInt(middle.value) + parseInt(bottom.value));
if (!valid) {
alert("Top %, Middle %, and Bottom % must equal 100% when added.");
}
return valid;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)