jQuery UI自动完成:
如何将术语发布到搜索脚本而不是GET?
我有一个使用乔恩Zaefferer的"自动完成" jQuery插件,表单字段.如果我键入一些文本,然后选择它的一部分并点击退格键,则自动完成列表会更新.但是如果我点击删除而不是退格,则自动完成列表会消失.
我期待在该插件的代码,它看起来像自动完成更新由该领域的keydown事件触发,都退格键和删除触发器的keydown.
退格和删除之间是否存在根本区别?
jquery autocomplete keycode jquery-plugins jquery-autocomplete
我正在使用jQuery UI Autocomplete 1.8.1,Jquery 1.4.2我有这个问题.
首先,我不能强制自动完成输入字段的值,这不是一个大问题.
但我有这个问题:
当用户select使用鼠标选择使用键盘箭头时,我的行为不同.当使用键盘时,一切都很好,并且在输入文本框中选择后显示值,但是当使用鼠标时,它会粘贴旧的(键入的)值而不是选定的值.
如何控制(选择后的文本框值)?为什么有不同的行为?
PS:改变select函数内部输入框的值是没用的,因为它无法完成!
有没有人知道如何使用数据库而不是本地值在Django中实现jQuery自动完成插件?
具体来说,我想实现页面底部提到的"搜索页面替换"功能,数据集将有大约一千个或更多条目,但我无法锻炼如何让它与我的数据库的必要字段进行交互.
(我也在寻找一个好的Python/Django搜索解决方案,用于我的网站 - 这只是一个非常简单的网站.)
谢谢您的帮助.
我有这个jQuery代码:
$(".autocomplete").autocomplete('url',{
extraParams: {country: function(){
var id = $(this).attr("id"); // not working
var country = id.replace("uni", "country");
var country_id = $("#"+country).val();
return country_id;
}}
}).result(function(event, item) {
// getNames(item);
});
Run Code Online (Sandbox Code Playgroud)
因为我将有几个带有自动填充字段的ajax加载表单,我需要每个表单从相应的表单向服务器发送适当的附加参数.
我试图通过获取输入字段的id并使用它来获取将保存必要参数的country字段的id来实现此目的.id将采用适当的格式以允许此操作.就像是:
uni_1,country_1; uni_2; country_2
uni是自动完成字段,country是附加参数.
我已经意识到$(this).attr("id")将无法在自动完成中工作,就像使用简单的jQuery事件一样,我还没有找到这样做的方法.我尝试使用toSource方法来查看自动完成对象,但似乎它不包含字段ID.
所以,如果有人知道如何做到这一点,请分享.
非常感谢你提前.伊万
问题就是这一切.我的jquery autocomplete从我自己的apis获取源代码.如果找不到任何匹配项,则只返回"找不到匹配项",然后显示在下拉列表中.当用户关注此时,框中的文本将更改为"找不到匹配项".我想要做的是在下拉列表中显示"找不到匹配项",但要使其无法对焦/可选择.这是我现在的代码:
$(document).ready(function() {
$("input#id_address").autocomplete({
delay: 300,
minLength: 3,
source: function(request, response) {
$.getJSON("/pin/cache/", {q:encodeURI(request.term)}, function(results) {
res = results.results;
response($.map(res, function(item) {
return {
label: item.address,
value: item.address,
lat: parseFloat(item.lat),
lng: parseFloat(item.lng)
}
}));
});
},
select: function(event, ui) {
if (ui.item.value == 'no matches found') {
return;
}
else {
$("#id_address").val(ui.item.value);
var pos = new google.maps.LatLng(ui.item.lat, ui.item.lng);
map.setCenter(pos);
map.setZoom(14);
placeMarker(pos);
}
},
});
});
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,我正在使用if else循环检查select:function中的"找不到匹配项",如果未找到匹配项,则不执行任何操作.但是,仍然会在焦点上填写"找不到匹配"的文字.我希望找到匹配项时在焦点上填写文本的默认功能,但是当找不到匹配项时,下拉列表应该是不可聚焦的.有什么建议 ?
javascript jquery jquery-autocomplete jquery-ui-autocomplete
我正在使用这个JQuery自动完成小部件.
当用户在文本框中单击时,如何使其自动打开菜单?我希望用户看到所有选项.
javascript jquery jquery-ui autocomplete jquery-autocomplete
嘿,所以我希望进行过滤搜索,以便输入两个搜索字母,相应的结果将显示在列表视图中.我无法像jqm listview一样加载整个列表,因为它太大了.有人可以告诉我如何做到这一点......它有点超出了我对API的理解范围.
我知道如何使用自动完成小部件进行jquery,但我希望将结果格式化为listview.所以一个文本框,然后在它下面的listview格式化结果,但只有在输入两个字母之后我才会喜欢它来显示结果,这样它就不会显示一个巨大的列表,这需要花费很长时间才能加载.
我正在尝试这样做http://jqueryui.com/autocomplete/#combobox 问题是,当我用鼠标移动选项时,选项将消失,它出现了建议:"x不匹配任何item"其中x是我在组合框中写的字母.现在我发布网站上的脚本:
(function( $ ) {
$.widget( "ui.combobox", {
_create: function() {
var input,
that = this,
wasOpen = false,
select = this.element.hide(),
selected = select.children( ":selected" ),
value = selected.val() ? selected.text() : "",
wrapper = this.wrapper = $( "<span>" )
.addClass( "ui-combobox" )
.insertAfter( select );
function removeIfInvalid( element ) {
var value = $( element ).val(),
matcher = new RegExp( "^" + $.ui.autocomplete.escapeRegex( value ) + "$", "i" ),
valid = false;
select.children( "option" ).each(function() { …Run Code Online (Sandbox Code Playgroud) 我试试这个:
$('input[name=recerv_country]').typeahead({
remote : {
url: '?country=%QUERY',
filter: function(data) {
var resultList = data.map(function (item) {
return item.name;
});
return resultList;
}
},
updater : function (item) {
//item = selected item
//do your stuff.
alert(item.name);
alert('foo');
alert('bar');
//dont forget to return the item to reflect them into input
return item;
}
});
Run Code Online (Sandbox Code Playgroud)
什么都没发生,警报没有出现.我做错了什么?
jquery ×9
jquery-ui ×4
autocomplete ×3
javascript ×2
django ×1
keycode ×1
listview ×1
select ×1
typeahead ×1