jquery.autocomplete 傳參問題

今天遇到一個問題,我須要傳一個文本庫的內容給後臺,而後用autocomplete顯示內容,開始以爲很簡單web

不就是json

 

function SalePrice_Complete(text) {
         //分割拿到索引
          var value=$("#MaterielID_" + text.selector.split('_')[1]).val();
            text.autocomplete("/Control/webControl.ashx",
                   {
                       dataType: 'json', //返回數據類型
                       width: 220,
                       minChars: 0,
                       extraParams: { Method: "SalePriceAutoComplate",MaterielID:value},
                       parse: function (data) { //後臺返回的數據傳給自定義的rows   
                           var rows = [];
                           for (var i = 0; i < data.length; i++) {
                               rows[rows.length] = {
                                   data: "[" + data[i].FPirce + "   " + data[i].FDate + "]", //顯示在搜索界面的列表
                                   value: data[i].FPirce , //查詢結果
                                   result: data[i].FPirce //顯示在文本框的內容
                               };
                           }
                           return rows;
                       },
                       formatItem: function (row, i, n) {
                           return row;
                       }
                   }).result(function (event, item, returnvalue) {
                       var values = returnvalue;
                       var index = text[0].id;
                       var i = index.split('_')[1];
                       //物料編號
                       $("#price_" + i).val(values[0]);
                   });
        };

可是代碼運行後發現,MaterielID獲得是空的,想了好久不知道爲何,因而在後臺和js都下了斷點,再運行,發現js沒有再運行過了,可是後臺卻斷點斷到了spa

因此咱們能夠推斷,變量是要動態賦值的調試

因而參考了下網上的代碼,修改爲code

 function SalePrice_Complete(text) {
         
            text.autocomplete("/Control/webControl.ashx",
                   {
                       dataType: 'json', //返回數據類型
                       width: 220,
                       minChars: 0,
                       extraParams: { Method: "SalePriceAutoComplate",MaterielID:function(){ return $("#MaterielID_" + text.selector.split('_')[1]).val()}},
                       parse: function (data) { //後臺返回的數據傳給自定義的rows   
                           var rows = [];
                           for (var i = 0; i < data.length; i++) {
                               rows[rows.length] = {
                                   data: "[" + data[i].FPirce + "   " + data[i].FDate + "]", //顯示在搜索界面的列表
                                   value: data[i].FPirce , //查詢結果
                                   result: data[i].FPirce //顯示在文本框的內容
                               };
                           }
                           return rows;
                       },
                       formatItem: function (row, i, n) {
                           return row;
                       }
                   }).result(function (event, item, returnvalue) {
                       var values = returnvalue;
                       var index = text[0].id;
                       var i = index.split('_')[1];
                       //物料編號
                       $("#price_" + i).val(values[0]);
                   });
        };

這樣後臺拿到MaterielID就有值了,事實證實,在對代碼機制不熟悉的狀況下,用正常思惟去推只能讓你陷入煩惱和睦憤中,想着明明有賦值,怎麼到後臺就不見了,因此仍是多用斷點多調試,用事實說話orm

相關文章
相關標籤/搜索