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

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

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

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

JavaScript

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

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

検索

検索は、あるデータの集まりの中から 目的のデータを見つけ出すことです。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

3回答

2410閲覧

JavaScriptで動的検索を行う場合の処理について

yowayowanitohei

総合スコア31

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

JavaScript

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

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

検索

検索は、あるデータの集まりの中から 目的のデータを見つけ出すことです。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

0クリップ

投稿2021/04/06 01:47

現在ボタンを押すとJavascriptによってテーブルの絞り込みを行う機能があります。
テキストを入力するだけで動的に絞り込みを行うようにしたいのですが、方法がわからず困っています。
ご存知の方良い方法がございましたらご共有をお願いしてもよろしいでしょうか。

html

1 2<textarea class="form-control" rows="1" name="inputProduct" id="search"></textarea><br> 3<input type="button" value="絞り込む" id="narrowdown"> 4 5<table id='Productlist' class="table table-bordered"> 6 <thead> 7 <tr> 8 <th>No.</th> 9 <th>商品</th> 10 </tr> 11 </thead> 12 <tbody> 13 @foreach($Product as $vals) 14 <tr> 15 <td>{{$No}}</td> 16 <td>{{$vals->product}}</td> 17 </tr> 18 @endforeach 19 </tbody> 20</table>

Javascript

1$(function(){ 2 $('#narrowdown').bind("click",function(){ 3 var re = new RegExp($('#search').val()); 4 $('#Productlist tbody tr').each(function(){ 5 var txt = $(this).find("td:eq(1)").html(); 6 if(txt.match(re) != null){ 7 $(this).show(); 8 }else{ 9 $(this).hide(); 10 } 11 }); 12 }); 13});

試したこと
onChange・onKeyUPを使って動かすようにしたいと考えていますが、
よくわからず動作の確認ができませんでした。
ブラウザはIEを使用しています。

Javascript

1<input type="text" onChange="alertValue(this)" /> 2 3 4<input type="text" onKeyUp="alertValue(this)" />

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

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

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

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

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

guest

回答3

0

changeイベントだと入力後フォーカス移動したときに発火します。
一文字入力するたびに絞り込みたいということなら、inputイベントですね。

js

1$(function(){ 2 $('#search').bind("input",function(){ 3 var re = new RegExp($('#search').val()); 4 $('#Productlist tbody tr').each(function(){ 5 var txt = $(this).find("td:eq(1)").html(); 6 if(txt.match(re) != null){ 7 $(this).show(); 8 }else{ 9 $(this).hide(); 10 } 11 }); 12 }); 13});

投稿2021/04/06 02:06

編集2021/04/06 02:11
hatena19

総合スコア34075

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

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

yowayowanitohei

2021/04/06 02:36

ご回答ありがとうございます。 Chromeで動作確認できました! ただIEだと素直に動いてくれませんでした。。。 もう少し修正してみようと思います。
guest

0

ベストアンサー

IE対応がけっこう足かせですね(jQueryなら吸収してくれますが)

javascript

1window.addEventListener('DOMContentLoaded',function(){ 2 document.querySelector('#search').addEventListener('input',function(e){ 3 const v=e.target.value.trim().split(/\s+/); 4 var reg=new RegExp("^("+v.join("|")+")$"); 5 [].forEach.call(document.querySelectorAll('#Productlist tbody tr td:first-child'),function(x){ 6 const tr=x.parentNode; 7 tr.style.display="none"; 8 if(reg.test(x.textContent)) tr.style.display=""; 9 }); 10 }); 11});

投稿2021/04/06 02:31

yambejp

総合スコア116724

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

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

yowayowanitohei

2021/04/06 02:37

ご回答(ご解答?)ありがとうございます。 IEでも動作できそうです!バッチリ動いているのですがIE不安なのでもう少しちゃんと調べて問題ないか確認してみます。 またご機会がございましたらどうぞよろしくお願いします。
yambejp

2021/04/06 02:40

ちなみに正規表現で処理している関係でワイルドカードが判定されてしまいます 正規表現の特殊文字を弾きたい場合は適正なエスケープ処理が必要です
guest

0

「textarea jquey onChange bind」とかでググると出てくるかと思いますが、下記の記事がまさにやりたいことを表しているかと思います。

How can I bind to the change event of a textarea in jQuery?

もともと#narrowdownclickイベントでやっていた事を、上記の内容を参考に#searchonChangeイベントで実行してみてはいかがでしょうか?

投稿2021/04/06 01:51

nekoniki

総合スコア2411

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

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

yowayowanitohei

2021/04/06 02:35

ご回答ありがとうございます。 フォーカスが外れた時になってしまうので、今回はonKeyUpで実装したいと思います。 参考になるサイトのご共有ありがとうございました。 またご機会がございましたらどうぞよろしくお願い致します。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問