0

こんにちは、
htmltextareaからデータを取得するときに問題が発生しました。textareaは次のように定義されています。

<textarea id="ta" cols=30 rows=15> 
</textarea>  


ここでは、テキスト領域が30文字に制限されているため、1行あたりの文字数が30文字を超えると、カーソルが次の行に移動します。これは問題なく機能しますが、を使用してその値を取得しようとするとjavascript、テキストエリアのコンテンツ全体は、複数ありますが、1行(連続文字列)で表示されます。
これが私のフィドルです

行がキーで区切られている場合は、複数の行が表示されENTERます。

4

3 に答える 3

2

ENTERaに入力するときにを押す<textarea>と、改行が挿入されます。JavaScript の改行は\n. これに対して何もする必要はありません。JavaScript は常に改行として処理する必要があります。jsshah と同じように、貼り付けたコードは私にとっても問題なく動作します。

于 2012-11-14T09:15:58.143 に答える
1

「Enterキー」を押すと、アラートに含まれます。

「新しい行」がある場合でも、値は単一の文字列です。例:Enterキーを押さずに「StackOverflow」。

「Stack[ENTERKEY]Overflow」Enterキーを押しても...文字列「Stack\nOverflow」が表示されます

var x = "Stack\nOverflow";
alert(x);

要素属性COLS->列、ROWS->行、幅と高さによく似ていますが、実際にはそうではありません。

<textarea id="ta" cols=30 rows=15></textarea>
于 2012-11-14T09:19:11.417 に答える
1

デフォルトでは、ブラウザは必要に応じてテキストを自動的に改行しますが、このような改行は単なる視覚的、つまり「ソフト」です。サーバーに送信されるデータ (フォームの送信時) や内部表現には影響しません。

wrap=hardで属性を使用するtextareaと、送信されたデータに改行を追加するという意味で、自動折り返しが「難しく」なります。しかし、私がテストしたブラウザーでは、JavaScript でアクセスできる内部表現に改行が表示されません。(おそらく、ブラウザーは送信時にテキストを再ラップします。)

したがって、JavaScript でアクセスされるようにテキストを折り返す必要がある場合は、自分で行う必要があります。一方、自動ラッピングは実際のユーザー入力ではないため、あたかもそうであるかのように扱う理由はほとんどありません。

于 2012-11-14T09:33:46.123 に答える