在SharePoint列表中,不允许上传文件名中包含任何特殊字符的文件。 (例如:文件& .doc无法上传)
所以我有一个JavaScript代码,用于在提交列表时验证文件名,并创建一个对话框,告诉用户在上传之前重命名文件,然后才能继续。
我的问题是,如果上传的文档超过1个,则代码仅适用于1个文档。它不验证第二项。我需要帮助,以便我可以上传n个项目并验证eac
<Script type="text/javascript">
function PreSaveAction()
{
var attachment;
var filename="";
var fileNameSpecialCharacters = new RegExp("[~#%&*{}<>;?/+|\"]");
try {
attachment = document.getElementById("idAttachmentsTable").getElementsByTagName("span")[0].firstChild;
filename = attachment.data;
}
catch (e) {
}
if (fileNameSpecialCharacters.test(filename)) {
alert("Please remove the special characters like ~#%&*{}<>;?/+|\ from the file attachment name and reattach the file.");
return false;
}
else {
return true;
}
}
</script>
答案 0 :(得分:1)
仅允许2007年sharepoint列表中的某些文件
编辑:包含评论代码:
<Script type="text/javascript">
function PreSaveAction()
{
var attachment;
var filename="";
try
{
attachment = document.getElementById("idAttachmentsTable")
.getElementsByTagName("span")[0]
.firstChild;
filename = attachment.data;
}
catch (e) { }
if (!filename.match(/^(.+?\.xlsx?)$/i))
{
alert("Please attach only excel files.");
return false;
}
else
{
return true;
}
}
</script>
答案 1 :(得分:0)
你不能循环浏览文件清单?将所有文件名放入结构/数组/中并查看所有文件名?
答案 2 :(得分:0)
我创建了一个修改后的版本,用于检查所有附件。这里只听一个附件。
这是我的
function chechAttachments() {
var spanTag;
var filename="";
var fileNameSpecialCharacters = new RegExp("[~#%&*{}<>;?/+|\"]");
try {
spanTag = document.getElementById("idAttachmentsTable").getElementsByTagName("span");
for (var i = 0; i < spanTag.length; i++) {
filename = spanTag[i].innerHTML;
}
}
catch (e) {
}
if (fileNameSpecialCharacters.test(filename)) {
alert('Attachments cannot contain special characters such as "[~#%&*{<>;?/+|\"]".\n\nPlease remove the special characters from the file attachment name.');
return false;
}
}