如何通过ajax发送所选复选框的值

时间:2017-10-25 00:39:07

标签: javascript

我从后端服务器获取data,如果单击该复选框,我想知道如何发送questionid的值。

function renderHTML(data) {
  var htmlString = "";  
  for (i = 0; i < data.length; i++) {
    htmlString += "<p><input type='checkbox' id='checks' value='" + data[i] + "'/>" +
      data[i].questionid + "." + "\n;
    htmlString += '</p>';
  }
  response.insertAdjacentHTML('beforeend', htmlString);
  document.getElementById('checks').onclick = function() {
    if (this.checked) {
      var xhr = new XMLHttpRequest();
      xhr.onreadystatechange = function() {
        if (xhr.readyState === 4) {
          var Data = xhr.responseText;
          var parseData = JSON.parse(Data);
          console.log(parseData);
        }
      };
      xhr.open("POST", "URL", true);
      xhr.send(JSON.stringify(data));
    }
  };
}

2 个答案:

答案 0 :(得分:0)

我建议您使用名称而不是ID

ID =&#39;检查&#39; =&GT;命名=&#39;检查&#39; 并定义类似this link

的函数

答案 1 :(得分:0)

您提出的问题的基本概念是可行的,请参阅下面的代码段。您可以将其替换为您需要执行的任何AJAX调用,而不是记录结果。

注意:您的代码中的一个重大问题(除了与引号相关的语法错误之外)是您尝试将unordered分配给多个HTML元素,您可以将这些元素分配给多个HTML元素。做。执行此操作时,通常您的id="checks"事件将适用于第一个元素,但不适用于其他元素。相反,请使用onclick,或者使用我在下面的classes

&#13;
&#13;
querySelector
&#13;
var checkboxes = document.querySelectorAll('input[type="checkbox"]');

for (var i=0; i < checkboxes.length; i++) {
  checkboxes[i].onclick = function() {
    if (this.checked) {
      console.log(this.value + ' is checked!');
    }
  }
}
&#13;
&#13;
&#13;