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

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

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

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

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

Q&A

3回答

3018閲覧

inputタグのタイプがnumberのときjsのchange()が機能しない

otyatya_no_tya

総合スコア10

JavaScript

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

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

0グッド

0クリップ

投稿2021/03/09 07:52

前提・実現したいこと

ボタンを押すと、inputタグのvalueが増えて、console.log('aaa');までの処理を流したい

今の状態だとinputのvalueが変わるだけでchangeメソッドが発火しないです。
明示的にchangeを書く必要があるのですが、どのようにすればよいかわかりません。
https://www.sejuku.net/blog/41231

該当のソースコード

javascript

1function addBranch() { 2 const dom = document.getElementById("num"); 3 let num = document.getElementById("num").value; 4 5 dom.value++; 6} 7 8$(function () { 9 $('#num').change(function () { 10 let num = document.getElementById("num").value; 11 console.log('aaa'); 12 }) 13})

html

1<!DOCTYPE html> 2<html lang="en"> 3<head> 4 <meta charset="UTF-8"> 5 <link rel="stylesheet" href="./style.css"> 6 <script src="https://code.createjs.com/1.0.0/createjs.min.js"></script> 7 <script src="https://code.jquery.com/jquery-3.3.1.js"></script> 8 <script src="./app.js"></script> 9</head> 10<body> 11 12<canvas id="canvas"></canvas> 13<button id="button" onclick="addBranch()">ぷらす</button> 14<input id="num" type="number"> 15 16</body>

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

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

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

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

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

guest

回答3

0

今の状態だとinputのvalueが変わるだけでchangeメソッドが発火しないです。

はい、changeイベントは、ユーザーが変更した場合のみ発生します。

jQueryを使うのであれば、$('#num').change()でイベントを実行できます。

投稿2021/03/09 07:59

maisumakun

総合スコア145184

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

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

0

明示的にchangeイベントをトリガーするので正解です。プログラムから値を変更した場合、自動的にchangeイベントが起きることはありません。

投稿2021/03/09 07:59

int32_t

総合スコア20880

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

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

0

全体的に中途半端ですね

javascript

1<script> 2$(function(){ 3 $('#num').on('change',function () { 4 console.log('aaa'); 5 }); 6 $('#button').on('click',function(){ 7 $("#num").val(parseInt(($("#num").val()||0))+1).trigger('change'); 8 }); 9}); 10</script> 11<button id="button">ぷらす</button> 12<input id="num" type="number"> 13

投稿2021/03/09 08:12

yambejp

総合スコア114837

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問