0

我想为 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},

请帮我完成这个功能,谢谢大家

4

2 回答 2

1

有几件事:(1)对 JavaScript 函数名称使用驼峰命名约定。(2) 确保在调用函数之前对其进行评估。因此,如果它位于不同的 js 文件中,请确保将其包含在调用该函数的文件之前。(3)更改data:{dataPas}data: dataPas(我认为您拼错了“通过”,但无论如何)。那么你的dataPas对象应该是 javascript 对象表示法,比如dataPas = {foo: "foo", bar: "bar"};

于 2012-07-24T20:24:16.810 回答
1

如果dataPas是原生 JavaScript 对象,则将 dataPas 作为data:JSON.stringify(dataPas)

P.S: On an un-related sidenote you can omit dataType: 'json' and contentType just needs to be contentType: 'application/json' ( Link here )

于 2012-07-24T20:52:01.770 回答