Sharepoint - 自定义错误消息

Sharepoint - Custom error messages

我是工作项目的初级 Sharepoint 开发人员。 规格要求自定义错误消息。 当我创建一个带有数字字段的列表时,错误消息是 "Only numbers can go here".

<Field Name="Libelle" ID="{487dfca6-af3c-4939-94b1-2e5ae5aefb44}" DisplayName="Libelle" Type="Number" EnforceUniqueValues="TRUE" Indexed="TRUE" Required="TRUE" />

我可以更改吗?

像这样打开你的列表:-

https://site.sharepoint.com/Lists/List Title/NewForm.aspx?RootFolder=

注意:- 将 'List Title' 替换为您的列表标题

编辑此页面并添加 'Content Editor WebPart'(在 'Media and Content' 下) 在内容编辑器 Webpart 中粘贴此脚本:-

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
<script type="text/javascript">
function isNumber(n) {
  return !isNaN(parseFloat(n)) && isFinite(n);
}
$(document).ready(function(){
 $("input[title='Libelle']").blur(function(){
  var txt = $("input[title='Libelle']").val();
  if(!isNumber(txt)){
   $("input[title='Libelle']").val("");
   alert('Only numbers can go here');
  }
 });
});
</script>

SPField 的验证消息是 Microsoft.SharePoint 命名空间中名为 ValidationMessage 的字段上的 属性,或 SP 命名空间,如果您正在使用 SP.js 框架。

验证消息由 属性 控制,根据您在开发 SharePoint 时使用的模型而有所不同。

  • Field.ValidationMessageMicrosoft.SharePoint.Client 命名空间
  • SP.Field.validationMessageSP.js 命名空间
  • SPField.ValidationMessageMicrosoft.SharePoint 命名空间

使用 C# 在 SPField

上设置验证消息
using (SPWeb web = site.OpenWeb())
{
    //Get the list with your field
    SPList list = web.Lists["Your list name here"];

    //Get the field
    SPField field = list["FieldName"];
    field.ValidationMessage = "Your custom validation message.";
}

使用 JSOM 在 SP.Field

上设置验证消息
function setValidationMessage() {
    var context = SP.ClientContext.get_current();
    var web = context.get_web();
    var list = web.get_lists().getByTitle("Your list title");
    var field = list.get_fields().getByInternalNameOrTitle("Your field title or internal name");

    field.set_validationMessage("Your new validation message");
    field.update();

    context.executeQueryAsync(Function.createDelegate(this, this.onQuerySucceeded), Function.createDelegate(this, this.onQueryFailed));
}

function onQuerySucceeded() {
    console.log("Validation message successfully updated!");
}

function onQueryFailed(sender, args) {
    console.log("Failed to update validation message!");
}

使用 Sharepoint REST api 在 SP.Field

上设置验证消息
$.ajax({
    url: _spPageContextInfo.siteAbsoluteUrl + "/_api/web/lists(listid)/fields(fieldid)/validationMessage",
    type: "POST",
    data: JSON.stringify({
        '__metadata': {
            'type': 'SP.Field'
        },
        'validationMessage': 'Your custom validation message!'
    }),
    headers: {
        "IF-MATCH": "*",
        "X-HTTP-Method":"PATCH",
        "accept": "application/json;odata=verbose",
        "content-type": "application/json;odata=verbose",
        "X-RequestDigest": $("#__REQUESTDIGEST").val()
    }
});

附加信息here


您还可以在 SharePoint 站点的设置中设置验证消息,方法是转到站点设置中的列 select "Validation" 和 "Validation message".