1

このコードは単純な関数呼び出しです。

<input type="submit" name="_eventId_load" onclick="toLoad('2012\9\27\15\2012-09-27T15-05-59-512.00638.eml');" value="Load"/>

これは私がjs関数で受け取るものです:

 function toLoad(path) {
    document.getElementById("emailPath").value = escapepath);
}

firebug を介して、paramに次のものpathが含まれていることがわかります。 201292-09-27T15-05-59-512.00638.eml
scape 関数の後:20129%17%0D%812-09-27T15-05-59-512.00638.eml

価値観が全然違う。\js 関数に送信する前にte を操作/編集するにはどうすればよいですか?

前もって感謝します。

編集

これが解決策です:

<input id="filePath-${status.index}" type="hidden" value="${file.path}"/>
<input type="submit" onclick="toLoad('${status.index}'" value="Load"/>

これらの入力はフォーム内にあり、各要素はファイルです。${status.index}ロードするファイルを知る必要があります。${file.path}置き換えたいパスが含まれています。

function toLoad(index) {
    var emailPath = document.getElementById("filePath-" + index).value.replace(/\\/g,"\\\\");
    document.getElementById("emailPath").value = emailPath;
}

正しい入力は div に含まれるので、最終的な機能に使用できます。

回答ありがとうございます。

4

3 に答える 3

3

\エスケープ文字であるため、複製してリテラル にする必要があります。つまり、すべての記号を\に置き換えて再試行します。\\\

Javascript - 文字列リテラルのエスケープ文字の置き換えを参照してください

于 2012-09-28T08:02:37.137 に答える
0

\Javascript では、特殊文字のエスケープ文字として予約されています。

http://www.javascriptkit.com/jsref/escapesequence.shtml

エスケープ\自体は2つで発生します\\

于 2012-09-28T08:03:12.317 に答える
0

escape および unescape 関数を使用する unescape() 関数は、エンコードされた文字列をデコードします。 http://www.w3schools.com/jsref/jsref_unescape.asp

于 2012-09-28T08:03:13.427 に答える