Javascript 如何访问复选框值并将其传递给ajax
我试着用下面的方法,但结果是Javascript 如何访问复选框值并将其传递给ajax,javascript,ajax,forms,Javascript,Ajax,Forms,我试着用下面的方法,但结果是 [21/Sep/2018 14:48:45] "GET /buildknowledge/sharing?bid=75&sharewith=16,17 HTTP/1.1" 500 14382 要求: [21/Sep/2018 14:48:45] "GET /buildknowledge/sharing?bid=75&sharewith=16&sharewith=17 HTTP/1.1" 500 14382 我试过以下方法: 表格:
[21/Sep/2018 14:48:45] "GET /buildknowledge/sharing?bid=75&sharewith=16,17 HTTP/1.1" 500 14382
要求:
[21/Sep/2018 14:48:45] "GET /buildknowledge/sharing?bid=75&sharewith=16&sharewith=17 HTTP/1.1" 500 14382
我试过以下方法:
表格:
{%csrf_令牌%}
分享
{仅sharewithonly%%中的sharewith为%
{{sharewith.email}
{%endfor%}
接近
提交
Ajax和js部分:
function shareForm() {
console.log(node_name);
var token = '{{csrf_token}}';
var sharewith =getChecked();
function getChecked(){
var items=document.getElementsByName('mycheckboxes[]');
var selectedItems=new Array();
for(var i=0; i<items.length; i++)
{
if(items[i].type=='checkbox' && items[i].checked==true)
selectedItems.push(items[i].value);
}
return(selectedItems);
};
$.ajax({
headers: {"X-CSRFToken": token},
type: 'GET',
url: 'sharing',
dataType: "json",
traditional: true,
data: 'sharewith=' + sharewith ,
beforeSend: function () {
$('.submitBtn').attr("disabled", "disabled");
$('.modal-body').css('opacity', '.5');
},
success: function (msg) {
if (msg == 'ok') {
$('#inputName').val('');
}
});
}
}
函数共享表单(){
console.log(节点名称);
var-token='{csrf_-token}}}';
var sharewith=getChecked();
函数getChecked(){
var items=document.getElementsByName('mycheckbox[]);
var selectedItems=新数组();
对于(var i=0;i忘记手动从表单中提取所有数据。浏览器有内置的工具来为您执行此操作
const form = document.querySelector("form");
const formdata = new FormData(form);
$.ajax({
headers: {"X-CSRFToken": token},
method: "POST",
// Pass the form data object to jQuery
data: formdata,
// The next two lines stop jQuery trying to convert data and add headers that XHR will do automatically when it is passed a form data object
processData: false,
contentType: false,
});
如果您真的、真的、真的想手动执行此操作:
function getChecked(){
const inputs = document.getElementsByName('mycheckboxes[]');
const key_values = [];
for(let i=0; i<inputs.length; i++) {
let input = inputs[i];
if (input.type=='checkbox' && input.checked) {
key_values.push(
encodeURIComponent(input.name) +
"=" +
encodeURIComponent(input.value)
);
}
}
const form_encoded_data = key_values.join("&");
return form_encoded_data;
};
函数getChecked(){
const inputs=document.getElementsByName('mycheckbox[]);
常量键_值=[];
对于(让i=0;i
——它是一个表单,而不是假装成表单的东西,role=“form”
是无意义的。当前javascript不支持“const”和“let”version@joe-是的,它们是。如果您想支持古老的JS引擎,可以始终使用var
。
function getChecked(){
const inputs = document.getElementsByName('mycheckboxes[]');
const key_values = [];
for(let i=0; i<inputs.length; i++) {
let input = inputs[i];
if (input.type=='checkbox' && input.checked) {
key_values.push(
encodeURIComponent(input.name) +
"=" +
encodeURIComponent(input.value)
);
}
}
const form_encoded_data = key_values.join("&");
return form_encoded_data;
};