提交时html文本框上的UrlDecode值

时间:2012-12-04 04:04:15

标签: javascript jquery html html5

我有一个非常简单的表单,有三个字段需要提交给mvc操作。表单必须是application / x-www-form-urlencoded。但是,其中一个字段由用户复制和粘贴已经urlencoded的值填充。我想在提交表单之前解码该值。这似乎很简单,但我一直在用我的javascript运行。

以下是代码:

   <html>
    <head>
<script>
function decodeURI()
{
decodeURIComponent(document.createprofile.URI.value);
}
</script>
    <title>Test Create</title>
    </head>
    <body>
    <center>
    <h1> Spoof Profile Calls </h1>
    <hr>
    <div style="border: 1px solid black; width: 300px;">
    <b>Create</b>
    <form method="post" action="https://test.test-lab.com/Profile/Create/" name="createprofile">
    <input type="hidden" name="ReturnURL" value="self.close()">
    UserName: <input type="text" name="UserName"><br />
    Client: <input type="text" name="Client"><br />
    URI: <input type="text" name="URI" onblur="decodeURI();"><br />
    <input type="submit" formenctype="application/x-www-form-urlencoded" value="Go To - Create"><br />
    </form>
    </div>
    </body>
    </html>

URI字段是在提交之前需要解码的URL字段,因为它会被重新编码并因此被破坏。我可以要求用户自己对这些值进行解码,但它们不是非常复杂的用户,很可能不会发生。

提前谢谢!

使用失败代码更新

1 个答案:

答案 0 :(得分:1)

替换

URI: <input type="text" name="URI" onblur="decodeURI();"><br />

通过

URI: <input type="text" name="URI" onchange="decodeURI(this);"><br />

做一些像

这样的事情
function decodeURI(elm) {
    elm.value = 'foo ' + elm.value + ' bar';
    return false;
}