jQueryのオートコンプリート結果イベントハンドラが動作するように取得する方法は?

StackOverflow https://stackoverflow.com/questions/1452726

質問

私は、後に結果関数を発射する jQueryのオートコンプリートに使用するために失敗したコードを書きましたユーザーは、(下記)に有効なものを選択します。

の結果では、私は結果ハンドラ関数を意味している火災良い選択がオートコンプリートプラグインで発生した後。文書化されたここを。

ようにアイテム1、Qty1、Desc1、その後、アイテム2、Qty2、Desc2、そして:

私の場合、私は本当に、各行が同じである、テーブル、マイナスフィールド上で一意のIDであるフォームを持っています。アイテム1のコードで場合ユーザーが、Desc1テキストが選択された商品コードの英語(アイテム2 - > Desc2など)を表示する必要があります。

私は、すべての項目の入力を見つけ、それにオートコンプリートを平手打ちし、このコードを使用していました。結果イベントハンドラは、何らかの理由で発生しません。 > Desc1、アイテム2 - - あなたが気付いた場合、私はアイテム1項目に対応するDESCを選択する方法を考え出したていないので、私はハード「アイテム1」の選択をコード化された。その上> Desc2、および

私はそれが動作してしまったという理由だけでMVC Url.Contentを使用しました。誰かが私の方が良いと思うUrl.Actionを使用し、それを把握する必要があります。

必要に応じて、私の使用を修正すること自由に感じ、これはASP.NET MVC / jQueryを使って私の最初の時間です。

ありがとう:)

コード

$(document).ready(function(){

  $("input[id^='Item']").autocomplete( "<%= Url.Content("~/products/autocomplete")%>", {
  dataType: 'json',
  parse: function(data) {
      var rows = new Array();
      for( var i = 0; i<data.length; i++)
      {   rows[i] = {data:data[i], value:data[i].name, result:data[i].id }; }
      return rows;
  },
  formatItem: function(row, i, n) {
            return row.id + ' - ' + row.name;
        },
  selectFirst: true,
  //autoFill: true,
  minChars: 2,
  max: 30,
  autoFill: true,
  mustMatch: true,
  matchContains: false,
  scrollHeight: 100,
  width: 300,
  cacheLength: 1,
  scroll: true
  });

  $("Item1").result(function(event, data, formatted) {
      $("Desc1").html( !data ? "No match!" : "Selected: " + formatted);
  });
});
役に立ちましたか?

解決

$(document).ready(function(){

    $("input[id^='Item']").autocomplete( "<%= Url.Content("~/products/autocomplete")%>", {
            dataType: 'json',
            parse: function(data) {
                var rows = new Array();
                for( var i = 0; i<data.length; i++)
                {   rows[i] = {data:data[i], value:data[i].name, result:data[i].id }; }
                return rows;
            },
            formatItem: function(row, i, n) {
                return row.id + ' - ' + row.name;
            },
            selectFirst: true,
            //autoFill: true,
            minChars: 2,
            max: 30,
            autoFill: true,
            mustMatch: true,
            matchContains: false,
            scrollHeight: 100,
            width: 300,
            cacheLength: 1,
            scroll: true
    }).result(function(event, data, formatted) {
        var n = $(this).attr("id").match(/\d+/);
        var b = $("span[id='Desc"+n+"']")
        b.html( !data ? "No match!" : "Selected: " + formatted);
    });
});
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top