これはprevious questionの拡張です。私はいくつかの追加の問題に遭遇した。JavaScriptを使用してテキストエリアを読み込む
私はダイナミックテキストエリアボックスをフォームにロードしています。理由は問いませんが、JavaScriptを使ってこれらのフィールドに値を設定する必要があります(AJAXなどの処理が必要です)。単純化するために、私のtextareaに "myTextarea"という名前があり、リクエストパラメータ "myRequestParam"を設定したいとしましょう。だから私のような何かをしたいと思います。私の前の質問から
updateTextareaText("myTextarea", "${myRequestParameter}");
を、私は、これはいくつかの問題を解決することを発見しました:
updateTextareaText("myTextarea", unescape('<c:out value="${myRequestParam}" />'));
私はupdateTextareaText
のための異なる実装の数を試してみましたが、何も動作していないようです。改行と特殊文字の両方を扱う必要があります。
#3
function updateTextareaText(textareaElementName, newText) {
var textareaBox = document.getElementsByName(textareaElementName)[0];
var existingNodes = textareaBox.childNodes;
if (existingNodes.length > 0) {
textareaBox.removeChild(existingNodes[0]);
}
var newTextNode = document.createTextNode(newText);
textareaBox.appendChild(newTextNode);
}
上記ルーズ改行の全て試し#2
function updateTextareaText(textareaElementName, newText) {
var textareaBox = document.getElementsByName(textareaElementName)[0];
textareaBox.value = newText;
}
を試し#1
function updateTextareaText(textareaElementName, newText) {
var textareaBox = document.getElementsByName(textareaElementName)[0];
textareaBox.innerHTML = newText;
}
を試しますnd /またはエスケープされた値としていくつかの特殊文字を表示します。
Test
Newline and Special `[email protected]#$%^&*()_+-={}|[]\:";'<>?,./
誰もが異なる例すべてを処理するための正しい方法を知っています:私は、テストのため、次のmyRequestParam
値を使用してきましたか?注意点として、myRequestParam
値はDBから移入されていると私は%0A
としてエスケープされているが、私はそれは私がやるべきものだかどうかわからないのです\r\n
として改行を戻ってきています。 JavaScriptはもともと\r\n
を処理しませんでした(これは、終了していない文字列などについては不平を言います)。
私の会社はjQueryの使用を承認していません。好奇心のために、jQueryは名前でIDを取得することはできますか? –
ああ、そんな痛み! jQueryは非常に素晴らしく、時間を大幅に節約できます。そして、jQueryでは、id、name、class、contentで任意の項目を取得できます。http://api.jquery.com/category/を見てください。セレクタ/ – ricardordz