使用encodeURI()时,在回发之前显示编码文本

时间:2013-08-22 17:19:46

标签: c# javascript asp.net urlencode encodeuricomponent

我在我的按钮控件的OnClientClick上调用javascript函数来编码用于电子邮件正文文本的文本框值。 JS函数调用encodeURI()来编码textbox的文本值。

标记:

<asp:Button ID = "btnSend" runat = "server" Text= "Send" OnClientClick = "return encodeBody()"/>

JS功能:

function encodeBody() {
    document.getElementById(txtBodyID).value =         encodeURI(document.getElementById(txtBodyID).value);
}

问题是当它回发文本框中的文本时显示编码文本一秒钟然后它发送电子邮件。这是一个问题。另一个问题是如果发生错误,用户将看到编码的测试,而不是他们输入的原始文本。

1 个答案:

答案 0 :(得分:1)

由于您将该输入字段的值设置为编码网址,这就是用户可以看到它的原因。

要避免使用隐藏的输入字段并将其值设置为encodedURI

function encodeBody() {
    document.getElementById(hiddenfield).value = encodeURI(document.getElementById(txtBodyID).value);
}