try {
elem_id = event.srcElement.id;
} catch ( e ) {
elem_id = event.target.id;
}
if (event.keyCode == 13 || event.charCode == 13) {
var m = document.getElementById(elem_id);
var r = m.getAttribute("rows");
m.setAttribute("rows", parseInt(r)+1);
} else if(event.keyCode == 8 || event.charCode == 8){
var m = document.getElementById(elem_id);
var r = m.getAttribute("rows");
if(parseInt(r)>1){
m.setAttribute("rows", parseInt(r)-1);
}
}
現在、textareaのonkeydownイベントで上の関数を呼び出しているのですがこれを行の先頭でバックスペースを押されたときのみtextareaのrowsを1減らすというようにしたいのですがやり方が分かりません。
例えば、textareaの内容が
aa
bb
といったような場合、bbの前でバックスペースが押されたときのみrowsを1減らしたいのです。
よろしくお願いします。
No.4
- 回答日時:
#3です。
ちょっと、しゅうせいします。ちらつくというか、いちばんしたで、みえたり、きえたり・・・なので
while( e.clientHeight < e.scrollHeight && rows < max )
に、してちょ。
いちいち、もじがにゅうりょくされるたびに、へらして
ふやして・・・・。こうりつがわるかいなぁ~
ど~~~んと、さくじょすると、1ぎょうずつへっていき・・
そのうちちょうじりがあうってのもしょぼいし
No.3
- 回答日時:
<textarea cols="40" rows="4" name="" id="p" onKeyup="check();">
</textarea>
var Expansion = function ( e, max, min ) {
if( 'TEXTAREA' != e.nodeName )
return function ( ) { return false; };
var rows = e.rows;
min = 'undefined' === typeof min ? rows: min;
return function () {
if( min < rows ) e.setAttribute( 'rows', --rows );
while( e.scrollTop && rows < max )
e.setAttribute( 'rows', ++rows );
};
};
var check = Expansion( document.getElementById('p'), 20);
ちょっとonkeyupのよびだしかたは、あれだけど、べつあん。
回答ありがとうございます。
書いていただいたコードの、var Expansion ~の部分からvar check = Expansion~の部分までを<head>内のjavascript宣言部分に、<textarea cols="40"~の部分を<body>内にコピペしてみたのですがうまく動きませんでした。
No.2
- 回答日時:
{補足}
本来のバックスペースの動作も無効にする必要があります。
IEの時:event.returnValue = false;
IE以外:event.preventDefault();
以下の用にすれば一応出来ましたが、ちょっと意図とちがうかも。
それとIEとそれ以外ではonkeydownのタイミングが違ってたかも?
<script type="text/javascript" charset="utf-8">
<!--
function fuga(){
try {
elem_id = event.srcElement.id;
} catch ( e ) {
elem_id = event.target.id;
}
if (event.keyCode == 13 || event.charCode == 13) {
var m = document.getElementById(elem_id);
var r = m.getAttribute("rows")
m.setAttribute("rows", parseInt(r)+1);
} else if(event.keyCode == 8 || event.charCode == 8){
if((document.getElementById(elem_id).value.length % 10)==0){
try {
event.returnValue = false;
} catch (e) {
event.preventDefault();
}
var m = document.getElementById(elem_id);
var r = m.getAttribute("rows");
if(parseInt(r)>1){
m.setAttribute("rows", parseInt(r)-1);
}
}
}
}
// -->
</script>
</head>
<body>
<textarea id="hoge" rows="20" cols="10" onkeydown="fuga();"></textarea>
</body>
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript プログラムがうまく動きませんレビューお願いします 1 2022/07/10 05:08
- JavaScript コードレビューをお願いします。 1 2022/07/16 05:38
- JavaScript 画像の表示位置 3 2022/12/23 08:25
- その他(プログラミング・Web制作) google formsを使ったタスク依頼フォーム作成におけるご相談 1 2023/06/22 15:55
- JavaScript 1日1回引けるJavaScriptおみくじについて 1 2022/12/12 22:28
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/07 21:04
- JavaScript jsで質問です。 ボタンが二つ存在し、両方のボタンがクリックされたことをチェックしたいのですが、どの 4 2022/11/22 10:30
- HTML・CSS ボタンをクリックした時に、入力フォームのすぐ下部に、「入力欄が空白です」というテキストメッセージが表 1 2022/04/27 16:25
- JavaScript Javascriptが機能せず原因が分からないので教えて頂きたいです 3 2023/06/04 14:50
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
<a>タグのテキストを取得
-
ActiveXobjectが作成できない
-
innerHTML実行後のイベント
-
javascriptでスロットゲームを...
-
onchangeイベントを使ってspan...
-
画像上のクリックした場所が分...
-
Enterで次の入力項目へ進むには?
-
div要素内の全input要素をdisable
-
【Tabキー】特定の範囲内だけで...
-
javascript 特定のタグのidの存...
-
同じIDで定義した要素の配列を...
-
JavaScriptで文字列の特定文字...
-
jspからjavascriptの変数引継ぎ
-
C#テキストボックスの文字を配...
-
javascriptとphpの連携で疑問
-
Latexに関する質問です。
-
window.openでタイトル名の指定
-
Boolean型配列中のTrueの有無を...
-
翌月を取得するGASが分かりません
-
Javascriptグローバル変数の値...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
<a>タグのテキストを取得
-
ActiveXobjectが作成できない
-
onchangeイベントを使ってspan...
-
HTML:Tableタグに対し、JavaScr...
-
任意の座標をクリックさせるには
-
モーダルダイアログウィンドウ...
-
innerHTML実行後のイベント
-
Click回数を数え、規定された回...
-
javascript 特定のタグのidの存...
-
[初心者]javascriptのfor文でな...
-
【Tabキー】特定の範囲内だけで...
-
javascriptでスロットゲームを...
-
JavaScriptとcookieを利用して...
-
日本語入力の禁止
-
javascriptで、表示されている...
-
javascriptで編集可能不可能の...
-
画像の一部を表示
-
DIV内のDIV要素を移動する。
-
javascript の 命令文の記述で...
-
重複しないくじの作り方がわか...
おすすめ情報