疑問点
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}
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。