Javascript отправляет объект в качестве параметра - PullRequest
0 голосов
/ 03 октября 2018

У меня длинный HTML-код, созданный с помощью js, и мне нужно передать событие onclick значку, и я хочу отправить длинный объект в качестве параметра с другими потребностями, такими как:

var opt = "<i style='font-size:18px; color:orange; cursor:pointer;' onclick=\"barkod_onizle_dialog.apply('"+vs_id+"',"+stok_ozet+",'"+b.stok_id+"','"+$('[name=tarih]').val()+"','"+secilmis_depo+"','"+b.stok_id+"','"+seri+"','"+urun_stt+"','"+lot+"','"+b.stok_isim+"',this)\" class='fa'>&#xf06e;</i>";

Но в моем браузере я получаю такой результат:

barkod_onizle_dialog.apply('54',[object Object],'1508','03.10.2018','11','1508','155','2022-10-02','156','ADVIA -DIRUI R1 KABI (75 mL)',this)

И ошибка:

Uncaught SyntaxError: Неожиданный идентификатор

Iне удалось решить с помощью цитатных подходов.

Спасибо за вашу помощь.

Ответы [ 2 ]

0 голосов
/ 03 октября 2018

Ваша переменная stok_ozet содержит объект, поэтому он показывает [object Object] в объединенной строке, поэтому вам может потребоваться преобразовать его в строку во время объединения, например:

onclick=\"barkod_onizle_dialog.apply('"+vs_id+"',"+JSON.stringify(stok_ozet)+",'..

Я также предлагаючтобы прикрепить клик в вашем коде JS, если вы можете:

var opt = "<i style='font-size:18px; color:orange; cursor:pointer;' class='fa barkod_onizle_dialog'>&#xf06e;</i>";

$('body').on('click', '.barkod_onizle_dialog', function() {
  barkod_onizle_dialog.apply(vs_id, stok_ozet, b.stok_id, $('[name=tarih]').val(), secilmis_depo, b.stok_id, seri, urun_stt, lot, b.stok_isim, this);
})
0 голосов
/ 03 октября 2018

Проблема в том, что вы пытаетесь объединить object в string, поэтому вызывается метод toString() этого object, и поэтому он представляется как [object object].

Вам нужно stringify это object, прежде чем пытаться объединить его, вам нужно использовать JSON.stringify() над вашими объектами, прежде чем соединять их с string.

Демонстрация:

var obj = {a: 40, b: 60, c:'a string'};

var opt = "<i style='font-size:18px; color:orange; cursor:pointer;' onclick=\"barkod_onizle_dialog.apply('',,'','"+JSON.stringify(obj)+"','','','','','','',this)\" class='fa'>&#xf06e;</i>";
console.log(opt);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...