前提・実現したいこと
ejsを用いてTODOリストを作っています。
scriptタグの関数をonclick時に起動させたいです。
発生している問題・エラーメッセージ
コンソールに何も表示されません。(関数が起動していない。)
該当のソースコード
ejs
1<!DOCTYPE html> 2<html lang="ja"> 3 <head> 4 <meta charset="UTF-8" /> 5 <title>Document</title> 6 <link rel="stylesheet" href="/css/style.css" /> 7 </head> 8 <body> 9 <div class="container"> 10 <h1>To Do List</h1> 11 <form action="/create" method="post"> 12 <label for="title"> 13 <input type="text" name="title" id="title" placeholder="Todoを入力" /> 14 <input type="submit" value="追加" /> 15 </label> 16 </form> 17 18 <ul> 19 <% todos.forEach((todo) => { %> 20 <li> 21 <div class="items"> 22 <label for="title"> 23 <input type="checkbox" id="title" <%= todo.isDone ? "checked" : 24 null %> /> <%= todo.title %> 25 </label> 26 <form action="/delete/<%=todo.id%>" method="post"> 27 <input type="submit" value="x" class="delete-button" /> 28 </form> 29 <a href="/detail/<%=todo.id%>"> 30 <button>詳細</button> 31 </a> 32 </div> 33 </li> 34 <% }) %> 35 </ul> 36 <div> 37 <label for="all"> 38 <input 39 type="radio" 40 name="filter" 41 id="all" 42 checked 43 onClick="getFilterState()" 44 />All 45 </label> 46 <label for="active"> 47 <input 48 type="radio" 49 name="filter" 50 id="active" 51 onClick="getFilterState()" 52 />Active 53 </label> 54 <label for="completed"> 55 <input 56 type="radio" 57 name="filter" 58 id="completed" 59 onClick="getFilterState()" 60 />Completed 61 </label> 62 </div> 63 </div> 64 <script> 65 function getFilterState() { 66 const elements = document.getElementsByName("filter"); 67 68 for (const element of elements) { 69 if (element.checked) { 70 const filterState = element.id; 71 return filterState; 72 } 73 } 74 } 75 </script> 76 </body> 77</html>
試したこと
関数の呼び出しをonChangeに変更してみましたがうまくいきませんでした。
補足情報(FW/ツールのバージョンなど)
ejs
あなたの回答
tips
プレビュー