1

テキストボックスからぼかしたり、Enterキーを押したりすると、オートコンプリートが「非表示」プロパティを返すようにしたいと思います。データの形式は{value: "Pal", pts: "30"}. 入手したいpts。次に例を示します。

http://jsfiddle.net/ctuAg/4/

文字を 1 つか 2 つ入力してドロップダウンから名前を選択すると、期待どおりに「ポイント」テキストボックスが更新されます (名前の長さの 10 倍)。ここで、名前が完全に入力されてから Enter キーが押されるか、ぼやけている (タブまたはマウス クリック) ときに、このポイントの更新をトリガーする方法があるかどうかを知りたいと思います。つまり、オートコンプリート検索でテキストボックスの値と更新ポイントを一致させます。

私が見た限りでは、ドロップダウンで名前をクリックするだけでポイントが更新されます。

検索を行ったところ、見つかった最も近い関数/トリガーはsearch. これをぼかしの中に配置しようとしましたが、.pts は undefined を返します。これが答えかもしれませんが、私の場合はどのように使用すればよいですか?

    $("#autocomp").autocomplete({
      search: function(event, ui) {
        alert(ui.item.pts);
      }
    });
4

1 に答える 1

1

例の基本的な拡張として、プレス時に の値が#autocomp配列にあるかどうかを簡単に確認できます。enter

$("#autocomp").keypress(function(event) {
  var keycode = (event.keyCode ? event.keyCode : event.which);
  if(keycode == '13') {
    $("#status").append("Enter pressed\n");

      /* NEW CODE HERE */
      // loop through the array and check the value against available names
      for ( var i = 0, l = names.length; i < l; i++) {
          // if the name matches, update #points
          if ($(this).val() === names[i].value) {
            $("#points").val(names[i].pts);
          }                      
      }              
      /* END NEW CODE */    

    $("#points").focus();
  }
});

最も効率的な方法ではないかもしれませんが、仕事は完了します。ここでフィドル: http://jsfiddle.net/ctuAg/6/

于 2012-05-03T18:26:32.327 に答える