Javascript 在不使用InfoPath的情况下向SharePoint表单添加重复控件的变通方法

Javascript 在不使用InfoPath的情况下向SharePoint表单添加重复控件的变通方法,javascript,jquery,sharepoint,infopath,sharepoint-online,Javascript,Jquery,Sharepoint,Infopath,Sharepoint Online,我正在尝试使用重复控件创建SharePoint表单。我是SharePoint Online用户(Office 365) 我正在寻找一种无需使用InfoPath或任何第三方软件(如Nintex)即可完成此任务的解决方法。 JavaScript解决方案将是理想的 非常感谢您的建议。因为您知道如何在表单中插入JavaScript,所以可以将重复数据存储在多行文本字段中 将数据以结构化格式(如JSON)存储在多行文本字段中,然后使用JavaScript读取该字段的值,并在屏幕上呈现适当的重复控件(标签、

我正在尝试使用重复控件创建SharePoint表单。我是SharePoint Online用户(Office 365)

我正在寻找一种无需使用InfoPath或任何第三方软件(如Nintex)即可完成此任务的解决方法。 JavaScript解决方案将是理想的


非常感谢您的建议。

因为您知道如何在表单中插入JavaScript,所以可以将重复数据存储在多行文本字段中

将数据以结构化格式(如JSON)存储在多行文本字段中,然后使用JavaScript读取该字段的值,并在屏幕上呈现适当的重复控件(标签、文本输入、下拉列表)

查看下面我丑陋但功能强大的示例(将“多行文本列”替换为要在其中存储重复数据的多行文本字段的显示名称):

(函数(){
//定义要在重复字段中捕获的数据
变量字段=[{type:“text”,标签:“Employee Name”},
{类型:“文本”,标签:“ID号”},
{类型:“选择”,标签:“状态”,选择:[“全职”、“兼职”、“实习生”、“顾问”]}
];
//查找并隐藏文本区域
var textarea=document.querySelector(“[title=\”多行文本列\“]”);
//textarea.style.display=“none”;//取消对此行的注释以隐藏文本区域
//为重复字段创建新容器
var repeatingData=[];
var container=document.createElement(“div”);
textarea.parentNode.appendChild(容器);
//添加用于添加新行的按钮
var addButton=document.createElement(“输入”);
setAttribute(“类型”、“按钮”);
addButton.value=“添加行”;
addButton.addEventListener(“单击”,函数(){addRow();});
textarea.parentNode.appendChild(addButton);
//获取现有数据(如果有)
var existing=JSON.parse(textarea.value);
对于(变量i=0;i0){index=repeatingData[index-1][“数据id”]+1;}
repeatingData[last][“数据id”]=索引;
var行=document.createElement(“div”);
row.setAttribute(“数据id”,索引);
row.style.border=“1px纯黑”;
row.style.margin=“2px”row.style.padding=“2px”;
对于(变量i=0;i
.ms formtable{
字体系列:“Segoe UI”、“Segoe”、Tahoma、Helvetica、Arial、无衬线字体;
字体大小:13px;
字体大小:400;
}
formlabel女士{
右侧填充:5px;
}
.ms long{边框:1px实心rgb(186186186);左侧填充:5px;右侧填充:5px;底部填充:2px;顶部填充:2px;

多行文本列
[{“员工姓名”:“Joe Blow”,“身份证号码”:“123”,“状态”:“全职”},{“员工姓名”:“Jane Doe”,“身份证号码”:“321”,“状态”:“顾问”}]

Nintex将重复数据以XML形式存储在多行字段中。我倾向于将其存储为JSON,但多行文本字段似乎是个好主意。您对在SharePoint表单上嵌入JavaScript有多熟悉?我更喜欢不使用Nintext、Infopath或类似商业工具的解决方案。我在SharePoint f上嵌入了JavaScript谢谢你。你太棒了。非常感谢。