【问题标题】:Appending a hash '#' symbol to url with a form action?使用表单操作将哈希“#”符号附加到 url?
【发布时间】:2010-11-15 06:54:33
【问题描述】:

所以我有一个带有提交按钮和文本输入的表单...

我想要: http://localhost/

变成: http://localhost/#q=

我在 javascript 中做了一个解决方案,其中涉及将表单的“操作”更改为带有哈希 onclick 的 url.. 但这在 IE 中不起作用。

谁有适用于所有浏览器的解决方案?

【问题讨论】:

    标签: javascript forms


    【解决方案1】:

    我遇到了类似的问题,即 IE 没有从表单操作中提取哈希。

    我有一个表格

    <form action="/#search" id="search-form">
       <input type="text" class="search-query" placeholder="Search" name="q">
    </form>
    

    当我以除 IE 之外的任何方式提交此表单时,页面转到

    /?q=searchparams#search

    但在 IE 中它去了

    /?q=searchparams

    为了解决这个问题,我使用 JQuery 绑定到提交操作并重定向到我希望它转到的页面。

    $("#search-form").submit(function() {
        var query = $('input[name="q"]').val();
        window.location.href = 'index.php?q='+query+'#search';
        return false;
    }); 
    

    此后一直运行良好。

    【讨论】:

    • 我在 IE 中遇到了类似的问题。我们最终将 url 编码为 #%23。这使我们可以正常提交表单并保留哈希。
    • @KevinM 这实际上是正确的答案。这意味着整个事情可以在没有条件代码或脚本依赖的情况下按预期工作。您应该将其作为答案提交! (或者我会:P)
    【解决方案2】:
    <script>
    function add_hash() {
        window.location.hash = "q=";
    }    
    </script>
    
    <form onsubmit="add_hash(); return false;">
    

    不过,不确定你在做什么。

    【讨论】:

    • 很可能是某种搜索或查找系统,就像 google 一样。
    猜你喜欢
    • 2014-11-14
    • 1970-01-01
    • 2011-07-22
    • 2021-07-05
    • 2014-01-10
    • 2020-12-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多