отправка динамически c сгенерированных значений в ajax данные - PullRequest
1 голос
/ 02 апреля 2020

Имейте это

var cData={};
var arr=[];
datacolumns.split(",").forEach((element)=>{
    arr.push({data:element.trim()})
    cData[element] = `$(#${element.trim(0)}).val()`;
});

, но когда я вызываю cData в ajax Data: cData, он отправляет форму как

authorid    "$(#authorid).val()"
firstname   "$(#firstname).val()"
lastname    "$(#lastname).val()"
sorted  "$(#sorted).val()"

что происходит здесь, У меня ноль подсказок

Ответы [ 2 ]

2 голосов
/ 02 апреля 2020

Я думаю, что вы используете галочки неправильно Если element является строкой, вам не нужно их использовать.

var cData={};
var arr=[];
datacolumns.split(",").forEach((element)=>{
  var el = element.trim();
  arr.push({ data: el });
  cData[el] = $("#" + el).val();
});

Таким образом, когда вы go через l oop, вы должны каждый раз получать новый селектор:

$("#authorid").val();
$("#firstname").val();
$("#lastname").val();
$("#sorted").val();

Пока эти элементы существуют с правильным идентификатором и имеют атрибуты value, это должно работать для заполнения вашего объекта.

1 голос
/ 02 апреля 2020

Ну, у вас есть небольшая проблема с вашим кодом. Вам нужно изменить это:

cData[element] = `$(#${element.trim(0)}).val()`;

на это:

cData[element] = $(`#${element.trim(0)}`).val();

Обратите внимание на расположение обратных галочек (`). Вы обернули весь правый операнд в обратные тики, что сделало его строкой, в то время как вы действительно хотели обернуть только часть селектора.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...