0

jquery を使用して、オートコンプリート テキストフィールドを拡張しようとしています。

  • ユーザータイプ 3 文字
  • 都市がドロップダウンにロードされます(ajaxオートコンプリートを使用)

今私はしたい:

  • ユーザーが都市名を手動で入力できないようにしますが、代わりにドロップダウン リストから選択します。これを行う良い方法はありますか?オートコンプリートをトリガーするには、ユーザーが最初にテキストフィールドにいくつかの文字を入力できる必要があるため、検索して検索しましたが、適切な解決策が見つかりませんでした。

これまでの私の関数は動作します(今のところcity_nameのみを返します):

  $("#user_profile_attributes_city_id").autocomplete({
    source: "/data/living",
    minLength: 1,
    select: function( event, ui ) {
      $(this).val(ui.item.label);
      $(this).find("#country_id").val(ui.item.country_id);
      $(this).find("#city_id").val(ui.item.city_id);
      event.preventDefault;
    }
  })
4

3 に答える 3

1
$('#element').bind('keyup', function() {
  if ($(this).val().length == 3) {
    $(this).prop('disabled', true);
    // ajax-call
  }
});​

jsフィドル

于 2012-07-08T11:00:25.560 に答える
1

最初にオートコンプリートを配置できますが、

 <input autocomplete="off" />

実際には、値が必要なリストにある場合は、FORM 送信に何らかの検証を行う必要があります。

 $('form#id').submit(function(){

//validate
if ($(this).val().length > 3) {
    return false;
}
if ( $(this).val()  is_in_list ) {
    return false;
}
});
于 2012-07-08T11:05:29.003 に答える
1

これを実現するために、オートコンプリートの「開く」イベントと「閉じる」イベントを利用できます。ドキュメントを確認する

于 2012-07-08T11:42:01.593 に答える