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

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

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

JSP(Java Server Pages)とは、ウェブアプリケーションの表示レイヤーに使われるサーバーサイドの技術のことです。

JavaScript

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

Q&A

解決済

1回答

8060閲覧

データが一件もないという条件では、削除ボタンを非表示にしたい

touch

総合スコア38

JSP

JSP(Java Server Pages)とは、ウェブアプリケーションの表示レイヤーに使われるサーバーサイドの技術のことです。

JavaScript

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

0グッド

1クリップ

投稿2015/06/13 12:57

現在、登録画面と、その結果を一覧表示させる画面の全二画面からなるシステムを作成しています。また、一覧画面で表示をする際に下記のソースコードを見ていただきたいのですが、リクエストから取得した商品のデータの個数に応じて、データを選択し削除するためのラジオボタンを自動生成しております。

---一覧画面のJSPより出力部分を抜粋

<%--スコープから取り出したデータをlistに取得します--%>
<%
@SuppressWarnings("unchecked")
ArrayList<ItemBean> list = (ArrayList<ItemBean>)request.getAttribute("ITEMBEAN_LIST");
%>
<%--拡張for文で出力します--%>
<% for( ItemBean itemBean:list ) { %>
<tr>
<td><%= itemBean.getId() %></td> <%--ID--%>
<td><%= itemBean.getName() %></td> <%--商品名--%>
<td><%= itemBean.getGenreName() %></td> <%--ジャンル--%>
<td><%= itemBean.getSaleDate() %></td> <%--発売日--%>
<td><input type="radio" name="radiobtn" value="<%= itemBean.getId() %>"></td> <%--ラジオボタンでIDの値を送信します--%>
<% } %>
</tr>
</table>
<table id="table-02" align="center" style="margin-bottom:100px">
<tr>
<td>
<input type="submit" value="削除" onClick="return deleteChk();">
<input type="button" value="戻る" onClick="location.href='jsp/regist.jsp'">
</td>
</tr>
</table>

</form>

以上をふまえた上での質問なのですが、データを一件も取得できなかった場合、つまり一覧画面に表示されているデータが無い場合に、削除ボタンを非表示にしたいのですが、javaScriptを使う場合、関数内で何を判断材料にして、ボタンの表示・非表示を切り替えるのかがわかりません。どなたか教えてはいただけないでしょうか?何卒宜しくお願いします。

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

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

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

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

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

argius

2015/06/13 17:09

JSPで非表示にするのではなく、JavaScript限定なのは何か理由がありますか?
touch

2015/06/14 10:35

その背景も記述しておくべきでした。申し訳ございません。 JSPで非表示にできることも存じ上げているのですが、 JavaScriptを使った手法も勉強のため知っておきたいと思ったからです。
guest

回答1

0

ベストアンサー

javascriptを使う場合は、inputのhiddenのvalueにJSPで件数を設定しておいて、javascriptのページロードイベントでhiddenに設定したvalueの件数を判定して、削除ボタンのスタイルのdisplayをDOM操作で変更する、といった処理になると思います。

投稿2015/06/13 13:10

chiku_

総合スコア1464

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

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

touch

2015/06/14 10:48

ご回答ありがとうございます。 一つ質問をさせていただきたいのですが、件数というのは、ラジオボタンが何個生成 されているのかという意味の件数なのでしょうか?
chiku_

2015/06/14 23:28

ラジオボタンが何個生成されているのかという意味の件数、一覧画面に表示されているデータ件数になります。 下記が簡単なサンプルソースになります。 削除ボタンの表示・非表示だけならjspでやってしまった方が、いいように思います・・。 # jsp <input type="submit" id="delete_button" value="削除" onClick="return deleteChk();"> <input type="hidden" id="item_count" value="<%= list.count() %>"> # javascript(jquery使用) jQuery(document).ready( if ($("#item_count").val() > 0) { $("#delete_button").css("display", ""); } else { $("#delete_button").css("display", "none"); } );
touch

2015/06/15 10:28

ご返答およびサンプルコードの記載ありがとうございます。 list.count()をvalueとする発想は思いつきませんでした。 こちらのコードを参考に自身でも実装してみたいと思います。 重ねてお礼申し上げます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問