kenTT0903
@kenTT0903

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

.on()でのセレクタ前方一致指定で発火しない。

Q&A

Closed

解決したいこと

.on()をセレクタの指定を前方一致で発火させたいです。
セレクタの指定を前方一致に問題があると思っています。
解決策を教えていただきたいです。

コード

const target = hoge;

$(document).on('change', 'input[name^="' + target + '"]', function (event){
    console.log('通過');
    //処理
}
0

2Answer

同様の記述で問題なくイベントが発火することが確認できました。

See the Pen Untitled by yotty (@yotty) on CodePen.

まずは、どこかの記述に誤字脱字がないかチェックしてみてください。
記載のコードで1点気になった点として、最後の閉じかっこがありませんでした。

const target = hoge;

$(document).on('change', 'input[name^="' + target + '"]', function (event){
    console.log('通過');
    //処理
-}
+})
1Like

Comments

  1. @kenTT0903

    Questioner

    ご回答ありがとうございます。
    前方一致は問題ではないのですね。

    ちなみにHTMLのtypeも指定しないといけないでしょうか。
    今回指定しようとしているのが、下記のような要素となります。
    <input type="hidden" name="hoge_hoge">

  2. type="hidden"だとchangeイベントは使えないようです。

    非表示項目の変更を感知したいのであれば、type="text"にしてdisplay:noneなどを利用して非表示にするのはいかがでしょうか?

  3. @kenTT0903

    Questioner

    ありがとうございます!
    別の方法考えてみたいと思います。

Comments

  1. @kenTT0903

    Questioner

    ご質問ありがとうございます。
    input要素のname属性の前方一致でセレクタを指定したいです。
    コードの下記部分です。
    'input[name^="' + target + '"]'

Your answer might help someone💌