将按钮点击的值存储在变量中,以便将其存储在Sharepoint列表中



我试图将按钮点击的值存储在变量中,然后使用该变量存储在sharepoint列表中,但数据没有存储在sharepoints列表中。下面是HTML按钮部分,我只想将按钮点击的值存储在一个变量中,这样我就可以存储值Sharepoint列表。

<button type="button" id="btn-submit-feedback4" value="Article4"  class="btn_article">Download</button></a>
<button type="button" id="btn-submit-feedback3" value="Article5"  class="btn_article">Download</button></a>
<script>
var siteurl = _spPageContextInfo.webAbsoluteUrl;
var listTitle = "SeriesArticle";
$(document).ready(function () {
SP.SOD.executeFunc('sp.js', 'SP.ClientContext', function () { });
var id;
$(".btn_article").click(function () {
insertFeedback();
id=this.value;
})
});




function insertFeedback() {
$(".page_loading_section").show();
var clientContext = new SP.ClientContext(siteurl);
var list = clientContext.get_web().get_lists().getByTitle(listTitle);
var itemCreateInfo = new SP.ListItemCreationInformation();




var value1 = document.getElementById('txtname')  
.value;  

var value2 = document.getElementById('txtdesignation')  
.value;  

var articlename=id;
this.oListItem = list.addItem(itemCreateInfo);
oListItem.set_item('Title', "Aticle Series");

oListItem.set_item('Bunit', bname);
oListItem.set_item('BUnit', bunit);

oListItem.set_item('ArticleTitle', articlename);
oListItem.update();
clientContext.load(oListItem);
clientContext.executeQueryAsync(Function.createDelegate(this, this.onQuerySucceeded), Function.createDelegate(this, this.onQueryFailed));
}
function onQuerySucceeded() {
$(".page_loading_section").hide();

}
function onQueryFailed(sender, args) {
writeToConsole(args.get_message());
logMessageToULS(args.get_message());
//  console.log(+args.get_message() + 'n' + args.get_stackTrace());
$(".page_loading_section").hide();
}


</script>

我认为应该将var id;放在函数外部,因为它不可访问,并且不要忘记将id = this.value放在insertFeedback();之前,以确保这个id已经存储了值。

代码是这样的:

var siteurl = _spPageContextInfo.webAbsoluteUrl;
var listTitle = "SeriesArticle";
var id;
$(document).ready(function () {
SP.SOD.executeFunc('sp.js', 'SP.ClientContext', function () {});
$(".btn_article").click(function () {
id = this.value;
insertFeedback();      
});
});

我如下修改了您的代码,并在我的SPO环境中进行了测试,请参考:

$(document).ready(function () {
$(".btn_article").click(function (e) {
// show loading scanner
//$(".page_loading_section").show();
// insert
SP.SOD.executeFunc('sp.js', 'SP.ClientContext', function () {
insertFeedback(e.currentTarget.value);
});
})
});
function insertFeedback(v) {
var siteurl = _spPageContextInfo.webAbsoluteUrl;
var listTitle = "SeriesArticle";
var clientContext = new SP.ClientContext(siteurl);
var list = clientContext.get_web().get_lists().getByTitle(listTitle);
var articlename = v;
var itemCreateInfo = new SP.ListItemCreationInformation();
oListItem = list.addItem(itemCreateInfo);
oListItem.set_item('Title', "Aticle Series");
oListItem.set_item('mytitle', articlename);
oListItem.update();
clientContext.load(oListItem);
clientContext.executeQueryAsync(Function.createDelegate(this, this.onQuerySucceeded), Function.createDelegate(this, this.onQueryFailed));
}
function onQuerySucceeded() {
//$(".page_loading_section").hide();
console.log("inserted successful");
}
function onQueryFailed(sender, args) {
console.log(+args.get_message() + 'n' + args.get_stackTrace());
//$(".page_loading_section").hide();
}

BR

相关内容

最新更新