0
  jQuery(function() {
   var ingrident_array_json = [{"id_product":"45","name":"Acetyl Hexapeptide-8\ufeff (Argireline)","unit_price":"19.4500000000","usage_percent_lo":"3.00","usage_percent_hi":"10.00","usage_percent_best":"10.00"},{"id_product":"46","name":"Ceramide Complex (CeraTouch\u2122)","unit_price":"23.6125000000","usage_percent_lo":"3.00","usage_percent_hi":"10.00","usage_percent_best":"5.00"}];
  $("input:text[id^='ingredient']").live("focus.autocomplete", null, function () {
 $(this).autocomplete({
    autoFocus: true,
    source: projects,
    focus: function( event, ui ) {
        $( "#autocomplete" ).val( ui.item.name );
        return false;
      },
      select: function( event, ui ) {
        $(this).val( ui.item.name );
        $(this).attr("data-value",ui.item.unit_price);
        $(this).closest('.extra_fileds').find('.product_id_public').val(ui.item.unit_price);
        return false;
      }
    })
    });

  });

私は、各レコードに6つの要素を持つingrident_array_json json配列を持っています。オートコンプリートに名前を入力し、隠しフィールドに他のレコードを追加します。出来ますか?今は何も表示されていません。どんな助けでも大歓迎です

4

1 に答える 1

0

まず、ライブ メソッドは非推奨です。プロジェクトでは代わりに「on()」を使用してください。

次に、以下のように使用します。

var arr = $.map(ingrident_array_json, function(el) { return el });
$(function () {
    $('#ingredient').autocomplete({
        minLength: 3,
        source: arr,
        select: function (event, ui) {
           $('#ingredient').val( ui.item.name );
           $('#ingredient').attr("data-value",ui.item.unit_price);
           $('#ingredient').closest('.extra_fileds').find('.product_id_public').val(ui.item.unit_price);
           return false;
        }
    })
    .autocomplete().data("uiAutocomplete")._renderItem = function (ul, item) {
        return $("<li>")
          .append("<a>" + item.name + "</a>")
          .appendTo(ul);
    };
});

お役に立てれば。

于 2016-06-16T18:20:54.423 に答える