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

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

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

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Spring

Spring Framework は、Javaプラットフォーム向けのオープンソースアプリケーションフレームワークです。 Java Platform上に、 Web ベースのアプリケーションを設計するための拡張機能が数多く用意されています。

JavaScript

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

Spring Boot

Spring Bootは、Javaのフレームワークの一つ。Springプロジェクトが提供する様々なフレームワークを統合した、アプリケーションを高速で開発するために設計されたフレームワークです。

Q&A

解決済

2回答

1954閲覧

javascriptで値取得し、その結果を画面に出力したい

box_908

総合スコア5

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Spring

Spring Framework は、Javaプラットフォーム向けのオープンソースアプリケーションフレームワークです。 Java Platform上に、 Web ベースのアプリケーションを設計するための拡張機能が数多く用意されています。

JavaScript

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

Spring Boot

Spring Bootは、Javaのフレームワークの一つ。Springプロジェクトが提供する様々なフレームワークを統合した、アプリケーションを高速で開発するために設計されたフレームワークです。

0グッド

0クリップ

投稿2021/02/13 12:59

疑問点
javascriptの値反映について
検索ボタン押下すると、javascript記載のOnclick()メソッドが呼ばれます。
formタグのname属性「checkForm」を受け取り、
checkboxにチェックした項目を「,(カンマ)」で繋げています。

その結果を、pタグのid属性「result」に出力しようとしています。

ですが、結果が出力されません。
検索ボタンを連続で押下すると、一瞬「1,2」などと出力されます。

どのような実装を施せば、実現するかご教示願います。

html

1<form name="checkForm" method="post"> 2 <!-- <input id="search" type="text" th:action="@{/}" placeholder="検索">--> 3 <input type="checkbox" name="skill" value="1">java 4 <input type="checkbox" name="skill" value="2">sql 5 <input type="checkbox" name="skill" value="3">css 6 <input type="button" value="検索" onclick="Onclick()"> 7 </form> 8<p id="result"></p>

javascript

1function Onclick(){ 2 //フォームのnameから取得 3 let fn = document.forms["checkForm"]; 4 let check = document.getElementsByName("skill"); 5 let result =""; 6 7 for(let i=0; i<check.length; i++){ 8 if(check[i].checked){ 9 result += check[i].value + ","; 10 } 11 } 12 let re = document.getElementById("result"); 13 re.textContent = result; 14 fn.action = "/index/form"; 15 fn.submit(); 16}

java

1@RequestMapping("/index") 2@Controller 3public class Main { 4 5 @GetMapping() 6 public String top(Model model) { 7 8 return "toppage"; 9 } 10 11 @PostMapping("form") 12 public String form(Model model) { 13 return "toppage"; 14 } 15 16}

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

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

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

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

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

guest

回答2

0

ベストアンサー

すでに回答があるとおりsubmitしなければいいだけですが
jsももう少し書きようがあると思います
Onclickという名前のユーザー関数は流石にまずそうです

javascript

1<script> 2click_func=()=>{ 3 const check = document.querySelectorAll("[name=skill]:checked"); 4 result = [...check].map(x=>x.value).join(","); 5 document.querySelector('#result').textContent=result; 6} 7</script> 8<form name="checkForm" method="post"> 9<input type="checkbox" name="skill" value="1">java 10<input type="checkbox" name="skill" value="2">sql 11<input type="checkbox" name="skill" value="3">css 12<input type="button" value="検索" onclick="click_func()"> 13</form> 14<p id="result"></p>

投稿2021/02/13 16:44

yambejp

総合スコア116724

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

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

0

submitしてるから画面更新がはしってるため消えている

値を保持したままの表示にしたいのであれば
レスポンスに画面表示用の値をセットしなくてはならないと思います。

投稿2021/02/13 13:05

ransuS_T

総合スコア106

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問