复选框重定向不正确

时间:2012-08-07 13:32:49

标签: javascript

有人可以告诉我下面的功能有什么问题吗?

<form name="Menu" id="menu" onsubmit="this.enviar();">
<select id="pais" name="pais" size="1"">
  <option value="polonia">Polónia</option>
  <option value="portugal">Portugal</option>
  <option value="reino-unido">Reino Unido</option>
</select>
<select id="area" name="area" size="1">
  <option value="#">Seleciona uma área </option>
  <option value="arquitetura">Arquitetura</option>
  <option value="comunicacao">Comunicação</option>
  <option value="design">Design</option>
</select>
<input type="submit" value="Pesquisar"/>
</form>
<script type="text/javascript">// <![CDATA[
function vai(link) { location.href= link; }
function enviar(){
var pais = document.menu.pais.value;
var area = document.menu.area.value;
           window.location.href("http://www.teste.pt/tag/"+pais+"+"+area);
}
// ]]></script>

不要转到http://www.teste.pt/tag/pais+area链接,而是执行此操作:http://teste.pt/?pais=holanda&area=informatica

有人可以帮助我吗?

1 个答案:

答案 0 :(得分:0)

只需更改href功能中的目标enviar()即可。由于变量正在成为查询字符串的一部分,因此建议将它们包装在encodeURIComponent中,以便为此目的对其进行正确编码。

function enviar(){
  // Also recommend using getElementById() to get these nodes
  var pais = document.getElementById("pais").value;
  var area = document.getElementById("area").value;
  window.location.href("http://teste.pt?pais=" + encodeURIComponent(pais) + "&area=" + encodeURIComponent(area));
}

评论后更新:

如果您希望JavaScript继续重定向到同一链接http://www.teste.pt/tag/"+pais+"+"+area,但在内部将其处理为http://teste.pt/?pais=holanda&area=informatica,则必须使用重写规则来完成。如果您使用的是Apache,则应将以下内容放入.htaccess文件中:

RewriteEngine On
RewriteRule ^tag/([^+]+)\+(.*)$ /?pais=$1&area=$2 [L]