【发布时间】:2016-01-04 15:08:26
【问题描述】:
我正在使用带有 Bootstrap 的 CodeIgniter 构建一个网站,并且我有一个表单,每个页面的标题中有两个搜索字段。
<form action="<?php echo base_url(); ?>index.php/search/searchData" method="post" name="searchf" class="form Searchf" id="searchForm">
<input name="A1" class="menu-link Searchbox S1" id="S1"/>
<input name="A2" class="menu-link Searchbox S2" id="S2"/>
<input type="submit" id="submitSearchA"/>
</form>
对于两个搜索字段(S1 和 S2)中的每一个,我都有一个自动完成列表,可以在其中选择特定项目。
$('#S1').typeahead({
source: function (query, process) {
return $.post(base_url + 'index.php/search/autocomplete/', { query: query, database : "airlines" }, function (data) {
return process(data);
});
}
});
$('#S2').typeahead({
source: function (query, process) {
return $.post(base_url + 'index.php/search/autocomplete/', { query: query, database : "airports" }, function (data) {
return process(data);
});
}
});
自动完成是一个 Bootstrap 类,代码如下:
<ul class="typeahead dropdown-menu" role="listbox" style="top: 50px; left: 287px; display: none;">
<li class=""><a href="#" role="option">...</a></li>
<li><a href="#" role="option">...</a></li>
<li><a href="#" role="option">...</a></li>
.....
<li class="active"><a href="#" role="option"></a></li>
....
<li><a href="#" role="option">....</a></li>
</ul>
我想要的是 jquery 中的代码,以便一旦从下拉列表中单击项目('a'),就应该触发表单提交。在 Bootstrap 中,单击的项目位于 li class="active" 下方,如您在上面的代码中所见。
请在下面找到我的尝试。
<script type="text/javascript">
$('ul.typeahead').each(function(){
var $itemclicked = $('li.active').find('a');
$itemclicked.on('click',function(){
$('#searchForm').submit();
});
});
</script>
但是什么都没有发生.....
作为参考,我发现了一个完美的功能,但前提是用户按下回车键:
<script type="text/javascript">
// Using jQuery.
$(function() {
$('form').each(function() {
$(this).find('input').keypress(function(e) {
// Enter pressed?
if(e.which == 10 || e.which == 13) {
this.form.submit();
}
});
$(this).find('input[type=submit]').hide();
});
});
</script>
我已经尝试自定义它以适用于鼠标悬停但没有运气。
提前感谢您的帮助!
【问题讨论】:
标签: jquery html twitter-bootstrap codeigniter