質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

0回答

1804閲覧

インクリメンタルサーチ 追加したユーザーを検索結果に出さないようにしたい

TOMONINO

総合スコア9

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

1クリップ

投稿2019/08/02 06:49

チャットアプリでユーザー検索機能にインクリメンタルサーチをつけているのですが、追加ボタンを押してチャットメンバーにユーザーを追加して、再度検索すると追加したユーザーがまた出てきます。
追加したユーザーは出てこないようにしたいのですが、その方法がわかりません。
お知恵を貸していただけたらと思います。

javascripts

1$(function() { 2 3 var search_list = $("#user-search-result"); 4 var member_list = $("#member_search_result"); 5 6 function appendUsers(user) { 7 var html = `<div class="chat-group-user clearfix"> 8 <p class="chat-group-user__name">${ user.name }</p> 9 <a class="user-search-add chat-group-user__btn chat-group-user__btn--add" data-user-id="${ user.id }" data-user-name="${ user.name }">追加</a> 10 </div>` 11 search_list.append(html); 12 } 13 14 function appendMembers(name, user_id) { 15 var html = `<div class="chat-group-user clearfix js-chat-member" id="chat-group-user-8"> 16 <input name="group[user_ids][]" type="hidden" value="${ user_id }"> 17 <p class="chat-group-user__name">${ name }</p> 18 <a class="user-search-remove chat-group-user__btn chat-group-user__btn--remove js-remove-btn">削除</a> 19 </div>` 20 member_list.append(html); 21 } 22 23 function appendNoUser(user) { 24 var html = `<div class="chat-group-user clearfix"> 25 <p class="chat-group-user__name">${ user }</p> 26 </div>` 27 search_list.append(html); 28 } 29 30 $("#user-search-field").on("keyup", function() { 31 var input = $("#user-search-field").val(); 32 if (input.length) { 33 $.ajax({ 34 type: 'GET', 35 url: '/users', 36 data: { keyword: input }, 37 dataType: 'json' 38 }) 39 40 .done(function(users) { 41 $("#user-search-result").empty(); 42 if (users.length !== 0) { 43 users.forEach(function(user){ 44 appendUsers(user); 45 }); 46 } 47 else { 48 appendNoUser("一致するユーザーはいません"); 49 } 50 }) 51 52 .fail(function() { 53 alert("ユーザー検索に失敗しました"); 54 }) 55 56 } else { 57 $("#user-search-result").empty(); 58 } 59 }); 60 61 $(document).on("click", ".chat-group-user__btn--add", function (){ 62 var member = {}; 63 member.id = $(this).data("user-id"); 64 member.name = $(this).data("user-name"); 65 $(this).parent().remove(); 66 appendMembers(member.name, member.id); 67 }) 68 69 $(document).on("click", ".user-search-remove .chat-group-user__btn .chat-group-user__btn--remove .js-remove-btn", function() { 70 $(this).parent().remove(); 71 }) 72});

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

gouf

2019/08/20 17:20

たとえば: 「addedMemberList = []」を新規に用意して、そこにメンバーを追記。メンバーリストを取得する処理に「except」パラメータを新設して その値として「addedMemberList」を投げるようにすれば、道筋 (= バックエンド側に処理をバトンタッチ) が見えてきませんか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問