我有一个名为Employees的列表,我创建了一个用于保存数据的自定义表单。海关表格有五个字段。这是使用普通的HTML输入标签创建的
员工详细信息中的列
元数据管理结构
EmployeesDetails(Term Set)
Country(Term)
India(Term)
US(Term)
State(Term)
India(Term)
New Delhi(Term)
Karnataka(Term)
US(Term)
NewYork(Term)
LosAngels(Term)
因此,当我们保存记录时,它应保存到相应的列。我能够根据托管元数据中的国家/地区列出状态列表。如何使用javascript将记录保存到状态和国家/地区的相应列,这些列是托管元数据列?
很多问候
答案 0 :(得分:0)
去解决方案。写在es6工作包括babel转换器,将以下脚本添加到您的html文件
<script src="https://unpkg.com/babel-standalone@6/babel.min.js"></script>
注意输入字段位于html文件中
<input type="text" id="country">
<input type="text" id="state">
countryList和stateList是由
形式的对象(termId和termName)组成的数组countryList = [{id:"322321asdjgash", name:"India"}, {id:"32232sdasd1asdjgash", name:"US"}]
状态列表将根据国家/地区的选择创建(例如:选择US,然后stateList数组将如下所示)
stateList = [{id:"12312qwdadeqwe", name:"Los Angels"}, {id:"53127362376asghdjhas", name:"Newyork"}]
const onSubmitHandler = () => {
let countryId = countryList.find(cL => cL.name === $("#country").val()).id,
stateId = stateList.find(sL => sL.name === $("#state").val()).id,
// managed metadata field
metaObject = {
__metadata: {"type": "SP.Data.Employee_x005f_DetailsListItem"},
Title: $("#title").val(),
Country:{
__metadata: {"type": "SP.Taxonomy.TaxonomyFieldValue"},
Label: $("#country").val(),
TermGuid: countryId,
WssId: -1
},
State:{
__metadata: {"type": "SP.Taxonomy.TaxonomyFieldValue"},
Label: $("#state").val(),
TermGuid: stateId,
WssId: -1
}
};
$.ajax({
url: _spPageContextInfo.webAbsoluteUrl +"/_api/web/lists/GetByTitle('Employee_Details')/items",
method: "POST",
data: JSON.stringify(metaObject),
headers:{
"Accept": "application/json;odata=verbose",
"Content-Type": "application/json;odata=verbose",
"X-RequestDigest": $("#__REQUESTDIGEST").val(),
"IF-MATCH": "*"
},
success: (data) => {
console.log("success",data);
},
error: (error) => {
console.log(error);
}
})
}