繁体   English   中英

基于值重定向 URL 并不总是有效

[英]Redirect URL based on a value does not always work

我是 JavaScript 的新手,我编写了一个代码,根据他们在搜索栏中输入的内容将用户重定向到另一个页面。

奇怪的是,它有时有效,有时无效(一半一半),有人可能知道是什么原因造成的?

我的 HTML

<form class="form-inline my-2 my-lg-0">
    <input id="inputName" class="form-control mr-sm-2" type="search"
           placeholder="Search">
    <button id="searchBtn" class="btn btn-outline-success my-2 my-sm-0" onclick="searchUser()" type="button">
        Search
    </button>
</form>

我的 javascript

function searchUser() {
    window.open("/user/" + String(document.getElementById('inputName').value));
}

更新:感谢您指出双重身份,我已经删除了额外的身份,但问题仍然存在。

它可能发生在所有字符串上,例如“hsy”,它有时有效,有时无效。

When searching from URL http://127.0.0.1:8000/user/hsy , if it doesn't work, the URL just display as http://127.0.0.1:8000/user/hsy? URL 末尾有一个额外的问号。

它不适用于window.open()因为,如果您阅读控制台,它会说:“在新的 window 中有一个阻塞的打开 'stacksnippets.net/user/vfd',因为请求是在沙盒框架中发出的未设置其“允许弹出窗口”权限。如果 window.open() 不在堆栈片段中,则可以正常工作。”。 因为您使用 StackSnippets 或类似的框架来重定向。 如果你想使用它...

利用...

window.location.replace()

代替...

window.open()

 function searchUser() { window.location.replace("/user/" + document.getElementById('inputName').value); }
 <form class="form-inline my-2 my-lg-0"> <input id="inputName" class="form-control mr-sm-2" id="base_layout_user_search" type="search" placeholder="Search"> <button id="searchBtn" class="btn btn-outline-success my-2 my-sm-0" onclick="searchUser()" type="button"> Search </button> </form>

感谢@Niet the Dark Absol,他的想法是事实。

我不应该将表单与输入混为一谈。 通过删除表单属性,它可以正常工作。

非常感谢,伙计们。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM