document.getElementById("Message").innerHTML=document.getElementById("Message").innerHTML.replace("'","%%");
上記のステートメントは、一重引用符の最初の出現のみを置き換えます。その直後に送信を行い、JavaScriptが前のステートメントが完了するのを待たずに次のステートメントに進むためでしょうか?
document.getElementById("Message").innerHTML=document.getElementById("Message").innerHTML.replace("'","%%");
上記のステートメントは、一重引用符の最初の出現のみを置き換えます。その直後に送信を行い、JavaScriptが前のステートメントが完了するのを待たずに次のステートメントに進むためでしょうか?
正規表現を使用してみてください/g
.replace(/'/g,"%%")
以下のようにコードを変更してください。
document.getElementById("Message").innerHTML =
document.getElementById("Message")
.innerHTML
.replace(/'/g,"%%");
JavaScript でグローバルに置換するには、置換文字列に /g を追加する必要があります。
このSOリンクを参照JavaScriptを使用して文字列内のすべてのドットを置き換える方法
置換には正規表現を使用する必要があります。
document.getElementById("Message").innerHTML=document.getElementById("Message").innerHTML.replace(/'/g,"%%");
Global (g)
replace() パラメータでフラグを使用します。
こちらをご覧ください
正規表現と/g
(グローバル) フラグを使用する必要があります。これにより、すべてのオカレンスが置き換えられます。
document.getElementById("Message").innerHTML=
document.getElementById("Message").innerHTML.replace(/'/g,"%%");