我正在尝试在搜索框中输入值,然后按Enter键将其重定向到/workers/VALUE
目前重定向到workers/undefined
我是否在var产品中引用了错误的类?
$(document).ready(function() {
$(document).keypress(function(e) {
if (e.which == 13) {
e.preventDefault();
// enter pressed
var product = $("#search-box").val();
window.location.href = "/workers/" + product;
}
});
});

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<li class="nav-item hidden-sm-down search-box">
<a class="nav-link hidden-sm-down text-muted waves-effect waves-dark" href="javascript:void(0)">
<i class="ti-search"></i>
</a>
<form class="app-search">
<input type="text" class="form-control search-box" placeholder="Search Wallet Address">
<a class="srh-btn">
<i class="ti-close"></i>
</a>
</form>
</li>
&#13;
答案 0 :(得分:3)
您正在寻找id
,但您的搜索框仅将该ID设为class
,因此请将其替换为:
$("#search-box")
用这个:
$("input.search-box")
答案 1 :(得分:3)
我不建议您使用window.location,但是您的错误在您的HTML中,您忘记了输入的ID。
<input type="text" id="search-box" class="form-control search-box" placeholder="Search Wallet Address">
或尝试使用课程
$(".search-box")
答案 2 :(得分:0)
您当前的代码正在寻找ID等于'search-box'的元素,该元素不存在。
您可以使用$(".search-box").get(0).val();
选择具有特定类的第一个元素,但在您的情况下, li 元素也具有相同的类,因此此代码也不起作用(正如@somethinghere评论中指出的那样)。
要消除歧义,最好使用ID选择器,所以只需使用$("#search-box").val()
并将ID添加到输入元素,如下所示:
<input id="search-box" type="text" class="form-control search-box" placeholder="Search Wallet Address">
答案 3 :(得分:0)
您在JavaScript中错误地引用了搜索框。
您应该使用&
,因为您将搜索框设置为类,而不是ID。 Here is a quick reference on CSS selectors which might help。
此外,您应该仅在要引用的元素(输入)上设置搜索框类,因为您似乎在列表项元素和输入元素上设置它。