不正确的复选框重定向

Incorrect check boxes redirect

本文关键字:重定向 复选框 不正确      更新时间:2023-09-26

>有人可以告诉我下面的函数有什么问题吗?

<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

有人可以帮助我吗?

只需在enviar()函数中更改目标href即可。由于变量正在成为查询字符串的一部分,因此建议将它们也包装在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]