亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

即使存在,DataTables 也不會讀取輸入的值

即使存在,DataTables 也不會讀取輸入的值

翻閱古今 2021-12-23 15:58:42
服務器端模式下的數據表 1.10.18 和 jquery 3.2.1設置如下:var bySubstancesTable = $('#bySubstancesTable').DataTable({    processing: true,    serverSide: true,    searching: false,    ajax: {        data: {           list_requested: 'bySubstancesTable',  // <table> #ID           keywords: $('#keywords-bysubstancestable').val() // search keywords         },        url: '/get-product-notifications.json',     },    "language": {        ...        "processing": 'Loading notifications...'    } ...});頁面的標記有一個<input>帶 ID 的#keywords-bysubstancestable,后跟表的標記:<input type="text" id="keywords-bysubstancestable"><table id="bySubstancesTable" class="table display table-striped responsive" cellspacing="0" width="100%">    <thead>        <tr>            <th>Date</th>            <th>ID</th>            <th>Substance Name</th>            <th>Revision</th>            <th>Affected Products</th>        </tr>    </thead></table>當頁面加載時,表格被正確填充。我正在嘗試實現自定義搜索功能,而不是使用與 DataTables 捆綁在一起的搜索功能。我以前問過這個問題:DataTables - 當一個新的請求開始時終止 ajax 請求,這是我工作的基礎。當我嘗試重繪表格時 - 在用戶輸入#keywords-bysubstancestable輸入后 - 像這樣......var debouncedDraw = _.debounce(function (opts) {    bySubstancesTable.draw();    return false;}, 500);...它正在向 ajax 發出請求,/get-product-notifications.json但keywords:即使我輸入了輸入,請求中的參數也是空的。奇怪的是,如果我console.log($('#keywords-bysubstancestable').val())真的給出了價值。例如,如果我在輸入中輸入“Australia”,則console.log()語句給出:但是當查看網絡選項卡中的請求時,keywords:即使發送了所有其他參數也是空的:為什么會這樣?結果是表格顯示了“正在加載通知...”文本,但表格中實際上沒有任何變化。我不明白這一點,因為我bySubstancesTable.draw();從另一個似乎可以工作的項目中復制了它。我認為這.draw()確實是重繪表格的正確方法?
查看完整描述

1 回答

?
滄海一幻覺

TA貢獻1824條經驗 獲得超5個贊

您正在讀取值并將值分配給keywords,而不是其expression本身,因此您的關鍵字始終是靜態的,即初始化表時獲得的值。


數據表支持function作為 的值ajax.data,它應該采用數據對象并返回修改后的數據對象。


var bySubstancesTable = $('#bySubstancesTable').DataTable({

    processing: true,

    serverSide: true,

    searching: false,

    ajax: {

        data: function (d) {

          d.list_requested = 'bySubstancesTable';  // <table> #ID

          d.keywords = $('#keywords-bysubstancestable').val(); // search keywords

          return d;

        },

        url: '/get-product-notifications.json', 

    },

    "language": {

        ...

        "processing": 'Loading notifications...'

    }


 ...


});


查看完整回答
反對 回復 2021-12-23
  • 1 回答
  • 0 關注
  • 135 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號