2

JavaMail を使用して電子メールを送信しています。だから私は顧客がメッセージを作成し、ボタンを押して私に送信できる textArea を持っています。テスト中に、テキストエリア内で「Enter」/「Return」キーを押すとテキストが壊れることに気付きましたが、メールボックスをチェックすると1行のテキストです!

どうやってするの?

みんな助けてください!

私は今のところこのコードを使用していますが、うまくいっているようです:

<textarea rows="10" id="Message" onkeypress="BreakLine();"></textarea>

<script type="text/javascript">
function BreakLine() {
    var key = window.event.keyCode;

    // If the user has pressed enter
    if (key == 13) {
    document.getElementById("Message").value = document.getElementById("Message").value + "<br/>";
    }
}
</script>

しかし、textArea 内に何かをテープで留める"<br/>"と、残りのテキストも一緒に印刷されますが、メールを受信すると、想定どおりにテキストが途切れることがあります。"<br/>"しかし、 textArea 内を取り除く方法は?

Outlookのこの例(私が使用しているもの)も見つけましたが、"\r\n"代わりに使用しています"<br/>"が、うまくいきません!

PS上記の例はIEでのみ機能することはわかっていますが、今のところ心配する必要はありません...

4

4 に答える 4

2

これを試して:

<textarea rows="10" id="Message" onkeypress="BreakLine();"></textarea>
<script type="text/javascript">
    function BreakLine() {
        var key = window.event.keyCode;
        // If the user has pressed enter
        if (key == 13) {
            document.getElementById("Message").value = document.getElementById("Message").value +"\n";
            window.event.preventDefault();
        }
console.log(encodeURIComponent(document.getElementById("Message").value));
    }
</script>
于 2013-10-18T11:35:56.503 に答える
1

コードをデバッグして、textArea からコードに渡された文字列を確認しましたか? ところで、JavaScript クロスブラウザー対応にすることができます。

function BreakLine() {
    var key = event.which || event.charCode || event.keyCode;

    // If the user has pressed enter
    if (key == 13) {
    document.getElementById("Message").value = document.getElementById("Message").value + "<br/>";
    }
}

キーを取得する上記の行が機能しない場合は、jquery の「which」関数を使用して、ブラウザが何であれキー コードを取得できます。

編集:<br>テキストエリアに追加して表示する代わりに、テキストエリアのテキストとテキストを 組み合わせて、ページの非表示フィールドにこの値を保存できます。<br>次に、メッセージを送信するときに、この隠しフィールドから sが追加されたメッセージ テキストを取得して送信できます。<br>このようにして、テキスト領域に煩わしい s が表示されなくなり、メッセージは必要に応じて複数行になります。

于 2013-10-18T11:40:38.540 に答える