我想为Fill DropDownlist编写公共函数。当程序员想要填充DropDownlist调用此方法并设置参数。我写这段代码
function FillDropDownlist(url,dataPas,selector,indexValue,indexText) {
$.ajax({
cache: false,
contentType: 'application/json; charset=utf-8',
url: url,
data:{dataPas},
success: function (data) {
var rows = data.rows;
var drpTransportType = $(selector);
var strOption = '<option value=0>...Select.....</option>';
$(selector+" option").remove();
if (data.rows.length >= 0) {
for (var i = 0, l = rows.length; i < l; i++) {
var ri = rows[i];
strOption += '<option value="' + ri.cell[indexValue] + '">' + ri.cell[indexText] + '</option>';
}
drpTransportType.append(strOption);
}
},
dataType: 'json'
});
}
并且对于呼叫我写这段代码
FillDropDownlist("JQGridHandler.ashx", "ActionPage:'TransportType',Action:'FillDrop'", "#Select1", 0, 1);
但此代码不起作用,并获得错误
Error: FillDropDownlist is not defined
我认为这一行有错误
data:{dataPas},
请帮助我完成此功能,谢谢所有
答案 0 :(得分:1)
一些事情:(1)使用JavaScript函数名称的camelCase命名约定。 (2)确保在调用之前评估该功能。因此,如果它位于不同的js文件中,请确保在调用该函数之前包含该文件。 (3)将data:{dataPas}
更改为data: dataPas
(我认为你拼错了“通过”但无论如何)。然后,您的dataPas
对象应采用javascript对象表示法,例如dataPas = {foo: "foo", bar: "bar"};
答案 1 :(得分:1)
如果dataPas
是本机JavaScript对象,则将dataPas作为data:JSON.stringify(dataPas)
P.S:在不相关的旁注中,您可以省略dataType: 'json'
,而contentType只需contentType: 'application/json'
(Link here)