如何将表单文本附加到JQuery中的URL,在以下示例中:

时间:2014-08-13 00:00:22

标签: javascript jquery forms url append

我已经看过一些类似的帖子,但没有解释一个适合我的例子的方法。

我希望将已输入的内容带入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();

我很确定我只是一个白痴,因为这看起来非常简单。任何帮助都会非常感激。

编辑:为了清晰起见,添加了表单格式。修复了代码片段,添加了一些有关代码的信息。

2 个答案:

答案 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,一切都很完美。

感谢你的所有建议。