2013-03-21 49 views
0

我正在实施一种搜索表单,在您开始键入时显示建议,但无法使其工作......问题在于,当您开始输入时,它不会显示任何建议。你能帮助我得到正确的代码吗?非常感谢!无法让自动填充搜索表单正常工作

这是代码:

<script src="//ajax.googleapis.com/ajax/libs/jqueryui/1.10.2/jquery-ui.min.js"></script> 
<div><input id="autocomplete" type="text"></div> 




<script> 
$("input#autocomplete").autocomplete({ 
source: [ 
{ id : "Google", value : "Google"}, 
{ id : "Yahoo", value : "Yahoo"}, 
], 
minLength: 1, 
open: function(event, ui) { 
$("ul.ui-autocomplete").unbind("click"); 
var data = $(this).data("autocomplete"); 
console.log(data); 
for(var i=0; i<=data.options.source.length-1;i++) 
{ 
            var s = data.options.source[i]; 
            $("li.ui-menu-item a:contains(" + s.value + ")").attr("href", "/" + s.id); 
            } 

           } 

    }); 

    /* 
    $("input#autocomplete").bind("autocompleteselect", function(event, ui) { 
     //alert(ui.item.id + ' - ' + ui.item.value); 
     //document.location.href = ui.item.id + '/' + ui.item.value; 
     //event.preventDefault; 
     }); 
    */ 
    </script> 
+0

无需回答了..发现问题..我忘了添加 开头。 – user2177075 2013-03-21 14:18:38

回答

0

这里是代码:

<div id="search"> 
    <input list="results" id="project" onkeydown="if (event.keyCode == 13) { checkInput(this.value); return false; }" /> 
</div> 

的avaible结果...

<datalist id="results"> 
    <option>Demo</option>  
    <option>Example</option> 
    <option>pizza</option> 
</datalist> 

最后的JavaScript

function checkInput(searchQuery) 
{ 
if(searchQuery=="Home") 
{ 
    window.location = "Home.html"; 
} 
else if(searchQuery == "Contact") 
{ 
    window.location = "Contact.html"; 
} 
else if(searchQuery == "Sitemap") 
{ 
    window.location = "Sitemap.html"; 
} 
else 
{ 
    window.location = "noresult.html"; 
} 
} 

这样,当有人去搜索时,他们在预先填充的列表中选择的数量有限,而且他们选择哪一个选项会将他们引导到您的目标页面!我不能拿出所有的功劳,但我希望这有助于!