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

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

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

EJSは、JavaScript用のテンプレートエンジン。HTMLなどのテンプレートテキストにJavaScriptのロジックを記述することができます。また、変数・関数の実行をテンプレートテキスト内に埋め込むことも可能です。

onclick

onclickとはユーザーのクリック処理を指します。これは"onmousedown"(押下)と"onmouseup"(押上)の二つの事象の組み合わせです

HTML

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

Q&A

0回答

1193閲覧

【<script/>】ejs内のscriptタグがうまく動作しません

ryota002

総合スコア20

EJS

EJSは、JavaScript用のテンプレートエンジン。HTMLなどのテンプレートテキストにJavaScriptのロジックを記述することができます。また、変数・関数の実行をテンプレートテキスト内に埋め込むことも可能です。

onclick

onclickとはユーザーのクリック処理を指します。これは"onmousedown"(押下)と"onmouseup"(押上)の二つの事象の組み合わせです

HTML

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

0グッド

0クリップ

投稿2021/04/18 11:54

前提・実現したいこと

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

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

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

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

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

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

hoshi-takanori

2021/04/18 14:20

getFilterState の戻り値を使ってない (コンソールに表示もしてない) ように見えますが…。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問