2017-12-04 11 views
2

入力フィールドの入力が変更されたときにJavaScriptコードを実行しようとしています。私はoninputイベントハンドラの関数名を指定することから始めました。関数が定義されていなくても、関数が定義されていないことを示すUncaught Reference Errorがあります。

<input type="text" name="venue_name" value="<?php echo $event->venue_name(); ?>" 
    class="form-control w2bw2c-name w2bw2c-venue-name" placeholder="Search..." 
    oninput="inputChange()"> 

私は私の文書レディ機能の外で定義inputChange機能を持っていたが、これはしばらくの間、働いたが、今では動作しません。私が持っている私のdocument.ready関数内

<input type="text" name="venue_name" value="<?php echo $event->venue_name(); ?>" 
    class="form-control w2bw2c-name w2bw2c-venue-name" placeholder="Search..."> 

:今、私はこのコードを持っている私のdocument.ready関数外

$('select.w2bw2c-name').input(function() { 
    inputChange(this); 
}); 

を、私は機能を持っている:

function inputChange(x) { 
    ... some code ... 
}; 

入力フィールドにテキストを入力します。inputChangeが定義されていないというメッセージが表示されます。おそらく、クラスをセレクタとして使用する必要がありますが、フォーム内で入力フィールドが複数回表示される可能性がありますが、最初は動作させるようにしました。あなたが入力をしたときselectタグを参照してくださいあなたのセレクタ、:

$('select.w2bw2c-name').on('input', function() { 
    inputChange(this); 
}); 

注:

+0

正確なエラーメッセージは何ですか? 'input'が定義されていないという苦情を受けているはずです。 – Barmar

答えて

1

.input()のような、あなたの代わりに.on()を使用する必要があり、inputイベントを添付するための有効な方法ではありませんそれは次のようになります。

$('input.w2bw2c-name').. 

の代わりに:

$('select.w2bw2c-name').. 

希望します。

+0

セレクタがinput.w2bw2c-nameであっても、イベントがまだ.onまたは.inputで起動していないことを指摘してくれてありがとうございます。 –

+0

「inputChange not defined」というメッセージは表示されませんが、イベントは発生していません。これはタイミングの問題でしょうか? –

+0

私はまだoninput = "inputChange()"を使った私の最初の例がうまくいかず、inputChange関数が定義されていないというエラーメッセージを出したのか知りたいです。この技術は、私が探しているイベントを発生させるようですが、.inputまたは.onのセレクタを使用することは機能していないようです。 –

0

私は自分のHTMLの最後に私のjavascriptを持っていました。私はHTMLの頭にその一部(いわゆる "定義されていない"関数)を移動し、想定されたとおりにイベントを発生させました。今問題は、呼び出された関数inputChangeがデータベースへのAJAX呼び出しを行い、すべてのデータが返されるわけではないということです(自動質問リストを生成する)。別の質問のためにそれを保存します。

関連する問題