我已经看过一些类似的帖子,但没有解释一个适合我的例子的方法。
我希望将已输入的内容带入ID" searchbox",然后将其附加到以下脚本中:
形式:
<form method="get">
<span><input type="text" class="search rounded" placeholder="Search..." id='searchbox' autofocus></span>
</form>
JQuery的:
$(function(){
$('input[type="text"]').keyup(function(){
var searchText = $(this).val().toLowerCase();
var appendedText= $(this).val();
$('ul > li > a').each(function(){
var currentLiText = $(this).attr('class')
showCurrentLi = currentLiText.indexOf(searchText) !== -1;
$(this).toggle(showCurrentLi);
if (event.which == 13 || event.keyCode == 13) {
chrome.tabs.create({url:'http://www.exampletestsite.com/'+appendText});
return false;
}
return true;
});
});
大多数代码只是过滤预设选项列表,按Enter键将加载附加键入文本的网址,而不是使用可点击的预设。
我试图设置&#39;附加文字&#39;变量以获取已在搜索字段中输入的内容,在输入按下时,加载带有附加文本的URL。
我认为这个var会起作用,但它没有:
var appendedText= $('#searchbox').val();
我很确定我只是一个白痴,因为这看起来非常简单。任何帮助都会非常感激。
编辑:为了清晰起见,添加了表单格式。修复了代码片段,添加了一些有关代码的信息。
答案 0 :(得分:0)
行var appendedText= $('#searchbox').val();
非常有效,正如您在this小提琴中看到的那样(传递事件参数不是必需的,当然也不是问题的根源)。但是,我摆脱了form和span元素以及chrome.tabs的东西,所以我怀疑你的问题出在其中一个。
如果这不是实际问题,我不知道如何提供帮助,但就jQuery和.val()
而言,一切都很好。
答案 1 :(得分:0)
事实证明我的问题在于$('input[type="text"]').keyup(function(){
,特别是&#39; keyup&#39;。在发送附加到url的数据之前,Keyup会默认清除我的搜索框内容。我只是将它改为keydown,一切都很完美。
感谢你的所有建议。