• ベストアンサー

テキストエリアのイベント

天才プログラマーの皆様。JavaScript、jQuery テキストエリアのコンテキストメニューによる貼り付け・切り取りイベントを取得(実行された時の処理を設定)したいです。 ツイッターのツイートの文字数は、右クリックによる貼り付け・切り取りにも反応して文字数をカウントしています。 このサイトはできていないようですが、、 setTimeoutでずっとカウントしてればいいですが、ブラウザに負担が大 よろしくお願いします。

noname#191561
noname#191561

質問者が選んだベストアンサー

  • ベストアンサー
  • f1204-okw
  • ベストアンサー率84% (16/19)
回答No.2

input イベントを使うとよいでしょう。 oninput = listener でも addEventListener('input', listener) でも望みの挙動は実現されるはずです。 ただし IE の対応は 9 以降となります。 古い IE にも対応しようとすると、contextmenu イベントを使うほかないと考えられます。

noname#191561
質問者

お礼

天才 掛け値なしの本物です。

noname#191561
質問者

補足

自分の検索スキルがないせいで、 どのようにして情報を得るのかが分かっていません。 情報を手に入れる経路を教えてもらえないでしょうか? よろしくお願いします。

その他の回答 (2)

  • f1204-okw
  • ベストアンサー率84% (16/19)
回答No.3

情報入手の入口は Google 検索です。 検索のコツは『検索 コツ』とでも検索して学んでください。 JavaScript に関する情報に限って言えば、Mozilla Developer Network (MDN) を良く利用しています。 プログラミング専門の Q&A サイト Stack Overflow の過去ログも役に立ちます。 あとは Web デザイナやプログラマのブログです。 MDN は日本語に未翻訳の部分が多く、Stack Overflow は完全に英語のみです。 ブログも、海外のもののほうが数で勝るため情報源が豊富です(もちろん日本のブログにもすばらしいものがたくさんあります)。 日本語の情報に限って探すのではなく、英語を加えて使うのがおすすめです。

回答No.1

onChangeイベントで 文字数を最大文字数と比較 多いなら自身のテキストエリアから文字列を取得して超過分をカット カットした文字列をテキストエリアに入れ直す 多くないなら何もしない でどうでしょうか?

noname#191561
質問者

お礼

早速のご回答ありがとうございます。 onChangeは、テキストエリア<textarea id="tw"></textarea> では、フォーカスが外れた時に実行されるようです。 入力中は、イベントが発生しないです><

関連するQ&A

  • テキストエリアの文字数を数えたい

    Java初学者です。簡単な本をやり終えたので、ちょっと自分の役に立つ ものを作ってみようということになりました。 そこでレポート作成の際に使えそうな、 文字数、行数をカウントできるアプリケーションを作ることにしました。 具体的には、フレームは縦に2分割され、左側にボタン、右側がテキストエリアとなっています。 ボタンとは[文字数を数える][行数を数える][貼り付け]などのボタンです。 ボタンの下にその結果を表示するラベルも用意します。 貼り付けなどは既に用意されているpasteメソッドなどを使えば済む話ですが 肝心の文字数をカウントするのをどう実現するかで悩んでいます。 そもそも、テキストエリア内にある文字列?を直接扱う術が分かりません。 このままでは既に用意されている関数以外の操作は出来ないことになってしまいます。 テキストエリアないの文章をString型の変数に入れる、とかは出来ないんでしょうか。 幼稚な質問かもしれませんが、よろしくお願いいたします。

    • ベストアンサー
    • Java
  • Twitterのハッシュタグ

    Twitterにハッシュタグの青い文字を沢山貼り付ける方法を教えてください。 自分はスマートフォンから、Twitterやってますが、[切り取り]→[貼り付け]で1つは出来るのですが、何個も1つのツイートに貼り付ける方法は、流石に解りません。 自分でも試してみましたが、やはり1つのツイートに複数のハッシュタグの青い文字を貼り付ける事は出来ませんでした。 パソコンやスマートフォンの種類によっても、かなりやり方が違うのでしょうか? Twitterに詳しい方教えて頂きたいです。

  • テキストエリアにあわせた文字サイズ変更

    Javascript自体うまく動かすことができず、 サンプルを探しても見つからず、困っております。 やりたいことは、 Aのテキストエリアに入力した文字を「OK」ボタンクリックと同時に Bという別のテキストエリア(エリアの枠は固定)にリサイズ表示させたいと思います。 テキストエリア自体を文字数により大きくするサンプルはありましたが その逆のテキストエリアのサイズに文字をあわせるものが見つかりません。 申し訳ありませんが、おしえていただけますでしょうか。

  • テキストエリア入力文字数の表示で全角と半角を区別したいです。

    JavaScriptで以下のようにテキストエリアで入力文字数を表示させているのですが、 全角文字も半角文字も同じ1文字としてカウントされてしまいます。 入力された文字が全角なら2、半角なら1としてカウントするように出来ないでしょうか? ================================================================ /*テキスト入力フォームで文字数を表示する*/ function ShowLength( str ) { document.getElementById("inputlength").innerHTML = str.length + "文字"; } ---------------------------------------------------------------- <textarea cols="70" rows="10" onkeyup="ShowLength(value);" /></textarea> <p id="inputlength">0文字</p> ================================================================ 宜しくお願い致します。

  • jQueryで文字数カウンタ(複数対応)

    jQueryのプラグインを作成中です。 指定したテキストフォーム、テキストエリア内の文字数をカウントして、 指定場所に文字数を表示させるというものです。 下記のように記述し、 (function(jQuery) { jQuery.fn.textCount = function(options) { //キーボードが押された時にカウント jQuery(this).live("change keyup",function(){ var count = jQuery(this).val().length; var disp_area = jQuery(this).attr("id"); jQuery("."+disp_area).html(count+"文字"); }); return this; }; })(jQuery); jQuery(".counter").txtCount(); とHTML内で宣言しました。 <textarea id="sample">ここの文字数が</textarea> <div class="sample">ここに表示</div> と、ここまではうまくいきました。 が、テキストエリアの数が複数個あり、数が変動するため、IDを配列にしたいと思っています。 そこで、 <textarea id="sample[1]">個々の文字が</textarea> <div class="sample[1]">ここに表示されない</div> のように記述しました。 すると文字数が表示されなくなってしまいました。 classやidに配列指定はできないのでしょうか。 また、この場合はどのように宣言するのが正しいのでしょうか。

  • テキストエリア文字制限について

    テキストエリア文字制限について 失礼します。 javascript初心者です。 複数のテキストエリアの文字制限を行いたく 苦戦しております。 いろいろと検索してみましたが・・・ 2日ほど悩んでおります。 AとBでエラーが出た場合はCGIに流れず入力フォームに戻るのですが Bでエラーが発生しない場合CGIに流れてしまいます。 ですの文字数制限をしても結局CGIに流れてしまうのですが どのように記述すればよろしいでしょうか?? なんとか・・・ご教授いただければ幸いです。 よろしくお願いいたします。 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <meta http-equiv="Content-Style-Type" content="text/css"> <meta http-equiv="Content-Script-Type" content="text/javascript"> <title>入力文字数の制限</title> <script language="javascript" type="text/javascript"> <!-- var MAXLENGTH = 10; //入力許容最大文字数 function tareachk(frm){ var tmp = frm.vin1.value; var len = tmp.length; if(len > MAXLENGTH){alert("A入力可能な文字数は"+MAXLENGTH+"文字までです");} var tmp = frm.vin2.value; var len = tmp.length; if(len > MAXLENGTH){alert("B入力可能な文字数は"+MAXLENGTH+"文字までです");} else{frm.submit();} } // --> </script> </head> <body> <form action="ccccc.cgi" method="post"> <textarea name="vin1" rows="5" cols="30">10文字まで入力可能</textarea><br> <textarea name="vin2" rows="5" cols="30">10文字まで入力可能</textarea><br> <input type="button" value="GO" onclick="tareachk(this.form);"> </form> </body> </html>

  • 【jQuery】いい文字数カウンターを探してます

    jQuery(JavaScript)初心者です。 <input>や<textarea>など、フォームの文字数カウンターを探しているのですが、意外といいのが見つからず、お尋ねします。 次のような文字数カウンターのプラグインをご存じでしたら教えてください。 1)改行は数えない 2)キーボードを使わずマウスだけでコピペしても反応してくれる Twitterのも、教えてgooのも、上記を満たしていないのでけっこう難しいんでしょうかね… お詳しい方、よろしくお願いします。

  • あらかじめ入力されたテキストエリア内のバイト数表示

    以下のようなスクリプトで、テキストエリアに入力された文字のバイト数をカウントしているのですが、 あらかじめテキストエリアに文字が入力されてる場合に「0文字」と表示されます。 ページを開いたとき、あらかじめテキストエリアに文字が入力されてる場合に、そのバイト数を 表示させる方法はあるでしょうか。 もし、おわかりになる方がおられましたら、ご教示いただければ幸いです。 function ShowLength( str ) { len = 0; for(i=0;i<str.length;i++) { var c = str.charCodeAt(i); if ( (c >= 0x0 && c < 0x81) || (c == 0xf8f0) || (c >= 0xff61 && c < 0xffa0) || (c >= 0xf8f1 && c < 0xf8f4)){ len += 1; } else { len += 2; } } document.getElementById("inputlength").innerHTML = len + "文字"; } <textarea onkeyup="ShowLength(this.value);"></textarea> ちなみに、onload="ShowLength(this.value);"では上手くいきませんでした。 宜しくお願い申し上げます。

  • Twitter

    Twitterでトレンド押しても一切のツイートが見れなかったり ツイ消ししてなくてもツイートは消去されましたの表示が出てたり フォローしてる人のツイートのみ見れる感じなのですが 他にも何か影響は出てますか 閲覧600ツイートまでとは広告の表示なども含みますか。 プロフィールページに飛べばその人のツイート数でもカウントされますか

  • ツイッター

    ツイッターのタイムラインを見ているとプロフィールが線でつながった連続ツイートがあり、結果としてツイッターの文字数制限を超えて長い文章をツイートしているものがあります。どのような方法でやるのでしょうか?