我有三个变量,我想在更改下拉列值时将它们转移到另一个函数,如下所示:
$.each(data, function () {
var jName = this.job_name;
var jInv = this.job_inv;
var jDwg = this.job_dwg;
var jobVal = {
"job_name": jName,
"job_inv": jInv,
"job_dwg": jDwg
};
jobVal = JSON.stringify(jobVal);
$('#job').append('<option value=' + jobVal + '>' + this.job_inv + " " + this.job_name + this.job_dwg + '</option>');
});
和第二个功能:
$('#job').change(function () {
$('#itemList').empty();
var jobVal = JSON.parse($('#job').val());
var jName = jobVal.job_name;
var jInv = jobVal.job_inv;
var jDwg = jobVal.job_dwg;
$('#txt1').val(jName);
$.getJSON('/Demo/getItem', {
job_name: jName,
job_inv: jInv,
job_dwg: jDwg
}, function (data) {
var count = 0;
$.each(data, function () {
count += 1;
$('#itemList').append('<tr><td>' + count + '</td><td>' + this.item +
'</td><td>' + this.description + '</td ><td >' +
this.quantity + '</td ><td >' + this.unitPrice +
'</td ><td > ' + this.itemPrice + '</td ></tr>');
});
}).fail(function (jqXHR, textStatus, errorThrown) {
alert('Error getting Items!');
});
});
一切都很有效,直到其中一个变量包含空格或空值。任何解决方案都非常感谢。
答案 0 :(得分:0)
您必须通过以下代码
在数据输入时检查您的json值 jobVal = JSON.stringify(jobVal);
$('#job').append('<option value=' + jobVal.replace("", "_") + '>' + this.job_inv.replace("", "_") + " " + this.job_name.replace("", "_") + this.job_dwg.replace("", "_") + '</option>');
JSON值必须是对象,数组,数字或字符串,或者是其中之一 以下三个字面名称:
false null true