2017-03-03 12 views
3

QRコードリーダーJavaScriptを使用しています。
このJavaScriptはカメラを使用してイメージをキャプチャし、QRコードのデコードを試み、デコードされたテキストをTextAreaに出力として設定します。TextAreaテキストをキャプチャする方法JQueryのイベントが変更されました

これはうまくいきます。

TextAreaに設定されたテキストを処理するには、イベントをキャプチャする必要があります。

次のように私が利用可能なソリューションでさまざまな組み合わせを試してみました

第一

$('.barcodeInput').change(function(){ 
    debugger; 
    alert("changed"); 
}); 

第二

$('body').delegate('.barcodeInput', 'keyup change', function(){ 
    alert("changed"); 
}); 

第三

$('.barcodeInput').bind('input propertychange', function() { 
    debugger; 
    alert("changed"); 
}); 

私はこれらすべての中に定義されていますdocument.ready(function(){ // code here});

しかし、まだそれは鳴っていません。

QRコードをデコードすると、JavaScriptが正常にデコードされた後にテキストがTextAreaに設定されます。

私はイベントをトリガできますが、そのJavaScriptを手動で作成できますが、それはパッチワークになります。

私はこれらのような問題の永続的な解決策が必要です。

おかげであなたが好き、change()または.on()を使用してイベントを添付することができ、事前

+0

要素がフォーカスを失ったとき、私はあなたの実際の問題が何であるかわからないんだけど、 'change'にのみ発生します。代わりに 'input'を使ってみてください。 –

+0

jqueryバージョンはどうですか?あなたは '.on()'リスナーで試してみませんか? – Jai

+0

Textareaの値を変更すると、あなたのプラグインは 'trigger( 'change')'イベントを起動しますか? – Justinas

答えて

2

です:

$('.barcodeInput').change(function(){ 
    alert("changed"); 
}); 
//Or 
$('.barcodeInput').on('change', function(){ 
    alert("changed"); 
}); 

そして、あなたがテキストを変更したときに、イベントを呼び出すことができます:

textarea.val('new val').change(); 
//Or 
textarea.val('new val').trigger('change'); 

注:bindおよびdelegateは推奨されていません。

これが役に立ちます。

$('.barcodeInput').on('change', function(){ 
 
    alert("changed"); 
 
}); 
 

 
$('.barcodeInput').val('new val').change();
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<textarea class='barcodeInput'></textarea>

+0

あなたの答えはありがたいですが、.change()や.trigger(change)はどちらも私の場合はうまくいきません。私はJavaScriptを別に読んでQRコードを持っているので、うまくいかないかもしれません。 – Prasad

+0

ライブラリを使用していますか? –

+1

申し訳ありません、うまく動作します。キャッシュされたJavaScriptのために動作しませんでした。ブラウザのすべてのデータをクリアして再試行します。今は正常に動作しています..ありがとうございました。 – Prasad

関連する問題