双引号的encodeURIComponent在表单操作上消失

时间:2009-11-20 16:07:53

标签: javascript encoding uri

我正在尝试传递一个网址:

my_url ='http://somedomain.com/somepath/somepage?key=“查询”';

当有人点击表单时

我尝试使用encodeURI和encodeURIComponent,甚至使用警报来查看我有“查询”或%22query%22,因为我调用了类似document.my_form.action = my_url的内容但是当浏览器点击该页面时,我得到了:

http://somedomain.com/somepath/somepage?key=query

缺少双引号。 “=”,“@”的类似尝试都被保留了...有什么我想念的吗?

感谢。

1 个答案:

答案 0 :(得分:1)

在GET方法表单的action属性中使用查询字符串将导致查询被表单本身的变量覆盖。

您可以尝试将您的值添加为隐藏的输入字段(使用JavaScript)。

我尝试了你的代码,它对我很有用:

<?php
 print_r($_GET);
?>
<br>
<form id="testForm" method="post">
 <input type="submit">
</form>

<script>

 var actionUrl = "http://domain.com/test.php?key=" + '"query"';

 document.getElementById("testForm").action = actionUrl;

</script>

Output:
Array ( [key] => "query" )