Вы делаете странные вещи со своими переменными.
Изначально barCode=$("#model").val();
выглядит разумным, хотя вы можете захотеть объединить это с определением выше.
Затем вы вызываете var data1 = $("#model").val(barCode.substr(0,barCode.length-8));
, таким образом, data1 на самом деле является объектом jQuery: http://api.jquery.com/val/#val2
Таким образом, похоже, что вы вызываете val (что-то) и ожидаете получить обратно строку, как если бы вы вызывали val ().Что вы, вероятно, хотите сделать, это сказать:
var data1 = $("#model").val(barCode.substr(0,barCode.length-8)).val();
Поскольку это даст вам фактическое значение того, что находится в # модели.
Кроме того, matches
этомассив, так что вы, вероятно, хотите вместо этого вызвать
data:"tversion="+matches.length+"&action=tunermatches",
(обратите внимание на добавление .length
к matches
).