1

奇妙な問題があります。

次のように、列が84に設定されたhtmlテキストエリアがあります。

<textarea id="caseNote_note0" class="txtArea" name="caseNote_note" style="line-height: 1.1em; height: 5em;" wrap="hard" rows="10" cols="84" tabindex="7">blah blah blah</textarea>

クラスは次のtxtAreaように定義されます。

.txtArea {
            font-family:arial,sans-serif;
            font-size:1.0em;
            width:99%;
            rows:10;
            overflow:hidden;
            border:none;
            font-family:arial,sans-serif;
            margin: 0px 3px 0px 3px;
        }

テキストエリアはほぼ画面全体に広がっています。

ユーザーがデータを入力すると、期待どおりにすべてのデータがテキストエリアに表示されます。

ただし、フォームを送信すると、テキストは改行が挿入されて保存されたように見えます。

すなわち

保存前:

-------------------------------------------------- ------------------------------

何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか

何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか

-------------------------------------------------- ------------------------------

保存後: ---------------------------------------------- ----------------------------------

何とか何とか何とか何とか何とか

何とか何とか何とか何とか何とか

何とか何とか何とか何とか何とか

何とか何とか何とか何とか何とか

何とか何とか何とか何とか何とか

何とか何とか何とか何とか何とか

-------------------------------------------------- ------------------------------

を 84 (たとえば 150) より大きい値に変更するcolsと、改行が後で表示されます (つまり、改行が表示される前により多くのテキストが表示されます)。

テキストは、これらの明らかな謎の改行とともにデータベース テーブルにも保存されています。

回避策は、colsを非常に高い値 (500 など) に設定することです。そうすれば、この問題に遭遇することはないと思います....しかし、そもそもなぜこれが起こっているのかを知りたいのです。

どんな助けでも大歓迎です!

乾杯

ジャレット

4

2 に答える 2

4

属性を削除しwrapます。不要です。

于 2012-11-02T15:56:02.897 に答える
2

問題はwrap="hard"、HTML の属性が原因です。wrap="soft"画面上の行を折り返すように変更できますが、送信されたデータには含めません。または、 に変更してwrap="off"折り返しを完全にオフにすることもできます。これにより、テキストエリアに水平スクロールバーが含まれます。

これについて詳しく説明しているページがあります(これは Microsoft からのものです) が、web でtextarea wrapを検索すると、さらに多くの情報が得られます。

于 2012-11-02T16:01:10.293 に答える