我有一个非常简单的表单,有三个字段需要提交给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字段,因为它会被重新编码并因此被破坏。我可以要求用户自己对这些值进行解码,但它们不是非常复杂的用户,很可能不会发生。
提前谢谢!
使用失败代码更新
答案 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;
}