【问题标题】:how do I validate form fields in sharepoint list?如何验证共享点列表中的表单字段?
【发布时间】:2011-01-21 04:24:02
【问题描述】:

我想在添加/编辑时验证列表项的字段并停止保存操作并提供用户在该页面本身所做的错误信息。

例如,如果我想阻止用户在保存之前根据另一个字段的特定状态设置几个字段,我不能将该字段设为必填。

【问题讨论】:

    标签: sharepoint validation field


    【解决方案1】:

    使用 PreSaveAction。

    向您的页面添加一个名为 PreSaveAction 的 javascript 函数(最好是创建自定义列表模板并且可以修改将用作 EditForm 和 NewForm 的 aspx 页面,否则尝试使用内容编辑器 Web 部件或通过修改主Page)并从那里进行所有自定义验证。

    例如,我刚刚在一个项目中使用它,其中我们有 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;
    }
    

    【讨论】:

    • 嗨,Rich,好消息。这看起来是一个很好的可行解决方案,会试一试。
    • 我花了很长时间才弄清楚在页面上的哪个位置放置包含此 JS 的脚本标记。 This source 说把它放在 &lt;asp:Content ContentPlaceHolderId="PlaceHolderMain" runat="server"&gt; 元素内,这对我有用。
    • 如果字段类型是选择字段,允许选择多个值,作为复选框。如何执行相同的验证?我需要访问用户选择的值并针对另一个 spnumber 字段抛出类似错误信息的警报。我的意思是如果选择了 chckbox2,我的 tetxbox2 不能为空。它应该被填写然后只有用户可以保存表单。任何想法如何实现这个?
    【解决方案2】:

    您可能必须开始创建自定义字段控件才能完成这项工作。然而,一旦你开始定制化的道路,你就有几个选择要考虑。

    您可能想考虑创建自定义 asp.net 表单并将其编码以发布到列表或考虑 InfoPath 表单。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-08-05
      • 1970-01-01
      • 2012-06-20
      • 1970-01-01
      • 2011-03-19
      • 2010-09-26
      • 2023-03-06
      • 1970-01-01
      相关资源
      最近更新 更多