簡體   English   中英

jquery:預填充自動填充字段

[英]jquery: prepopulating autocomplete fields

我正在使用jquery的標記化自動完成插件( http://loopj.com/2009/04/25/jquery-plugin-tokenizing-autocomplete-text-entry )。 我主要使用Ruby,但我真的不熟悉javascript。

我的基本設置看起來像這樣,並且適用於新的空白表單:

$(document).ready(function () {
  $("#tag_ids_field").tokenInput("/tags", {
    queryParam: "search"
  });
});

當我嘗試預填充它時,問題出現了,就像編輯頁面一樣。 我正在嘗試做這樣的事情(當頁面加載時,“#tag_ids_field”文本框包含JSON - 這種方式在應用程序方面更簡潔)。

$(document).ready(function () {
  var tags = $("#tag_ids_field").html();
  $("#tag_ids_field").tokenInput("/tags", {
    queryParam: "search",
    prePopulate: tags
  });
});

但是,當頁面加載時,我發現它只是填充了數百個讀取“未定義”的條目。 即使我使用Rails提供的JSON輸出並嘗試將其粘貼在.js文件中,我也會得到這個:

$(document).ready(function () {
  $("#tag_ids_field").tokenInput("/tags", {
    queryParam: "search",
    prePopulate: "[{\"id\":\"44\",\"name\":\"omnis sit impedit et numquam voluptas enim\"},{\"id\":\"515\",\"name\":\"deserunt odit id doloremque reiciendis aliquid qui vel\"},{\"id\":\"943\",\"name\":\"exercitationem numquam possimus quasi iste nisi illum\"}]"
  });
});

這顯然不是一個解決方案,我只是出於挫折嘗試而得到同樣的行為。

我的兩個問題:

一,當我嘗試預填充時,為什么我的文本框中填充了“未定義”標簽,如何讓它們成功預填充?

第二,我打算在同一頁面上有許多這樣的自動填充字段(一次編輯多個記錄時 - 它們都查詢同一個地方)。 如何讓每個自動填充字段從其自己的文本框中獲取預先填充的值? 類似的東西(將這些設置應用於具有特定類的所有輸入框,而不僅僅是特定ID的輸入框):

$(document).ready(function () {
  $(".tag_ids_field").tokenInput("/tags", {
    queryParam: "search",
    prePopulate: (the contents of that particular ".tag_ids_field" input box)
  });
});

Flash84x:我不確定你得到了什么。 tag_ids_field不是db字段 - 它是我在模型上定義的虛擬屬性。 setter(接受逗號分隔的id列表)定義記錄與數據庫中這些標記的關系。 getter(在頁面加載時填充文本區域)可以返回我想要的任何內容 - 現在我將它設置為只返回JSON中的當前標記數據,因為一切都是那樣的。

如果你願意的話,我可以更詳細地解釋一下,但Ruby的一面很好用,我很滿意。 我根本就不知道javascript,所以一旦它獲得客戶端,我需要幫助操作數據。

沒關系,我把它解決了:

$(document).ready(function () {
  $(".tag_ids_field").each(function(index) {
    var ids = eval($(this).html());
    $(this).html('');

    $(this).tokenInput("/tags", {
      queryParam: "search",
      prePopulate: ids
    })
  });
});

我認為控制器將數據提供給編輯視圖並通過在輸入元素上設置value屬性來通過ruby填充字段會更有意義。 即使您正在編輯表單中,您也可以讓控制器將數據傳遞給視圖。 除非你正在做一些沒有將數據保存到數據庫的事情......

也許需要更多的洞察力來解釋你為什么要這樣做。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM