【问题标题】:Store the value of button click in variable, so that it can be stored in Sharepoint list将按钮单击的值存储在变量中,以便可以存储在 Sharepoint 列表中
【发布时间】:2020-10-29 21:53:53
【问题描述】:

我尝试将按钮单击的值存储在变量中,然后使用该变量存储在共享点列表中,但数据没有存储在共享点列表中。下面是 HTML Button 部分,我只是想将按钮点击的值存储在一个变量中,这样我就可以存储值 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>

【问题讨论】:

    标签: javascript sharepoint buttonclick sharepoint-list


    【解决方案1】:

    我认为您应该将 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();      
        });
    });
    

    【讨论】:

      【解决方案2】:

      我修改你的代码如下,并在我的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

      【讨论】:

        猜你喜欢
        • 2023-03-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-02-20
        • 1970-01-01
        相关资源
        最近更新 更多