jQueryで色々なフォーム入力値をリアルタイム取得する ITかあさん

ITかあさん

jQueryで色々なフォーム入力値をリアルタイム取得する

jQueryで色々なフォーム入力値をリアルタイム取得する

jQueryでフォームの入力地をリアルタイムで取得する方法を紹介します。
フォームのvalue値をリアルタイムで取得したい場合、必ずしも
フォームのパーツからフォーカスが外れた時やクリック時とは限りません。フォームの入力値が変更されたことを取得していきます。

jQueryのchangeイベントがかなり便利

今日まで知らなかったのですが、フォームのvalue値が変更されたことを知るにはchangeイベントがかなり便利なようです。

プルダウンが変更されたら

フォームのプルダウンが変更されたらvalue値がリアルタイムに変更されます。

ソースコード
$("#select1 select").change(function () {
var str = "";
str = $(this).val();
$("#select1 div").text(str);
}).change();
実行例

テキストエリアのテキストが変更されたら

先ほどのchangeイベントを使ってテキストエリアでも同じようにvalue値がリアルタイムに変更されるかテストしてみます。

ソースコード
$("#textarea1 textarea").change(function () {
var str = "";
str = $(this).val();
$("#textarea1 div").text(str);
}).change();
実行例

これは間違いではないのですがイマイチリアルタイムにvalue値を取得しているとは言いがたいです。(テキストエリアからフォーカスが外れたら実行されます)
そもそもchangeとはフォーカスが外れたら処理が実行されるので、フォームの入力値をリアルタイムに判定しているわけではありません。

リアルタイムにテキストエリアのvalue値を取得する

今回はこちらを参考にさせて頂きました。
つまり、先に入力したほうと、後から入力した方それぞれのvalueを比べているわけですね。

ソースコード

$("#textarea2 textarea").each(function(){
$(this).bind(‘keyup’, hoge(this));
});
function hoge(elm){
var v, old = elm.value;
return function(){
if(old != (v=elm.value)){
old = v;
str = $(this).val();
$("#textarea2 div").text(str);
}
}
}

実行例

初夏のJavaScript祭 in サーキュレーションビル ForPro