我最近将jQuery升级到1.4.2,将jQuery-UI升级到1.8.2.错误与否,当我尝试将新的ui-autocomplete(不是来自bassistance.de的旧版本)与jeditable结合起来时,我开始拉头发.
当我编辑页面中的字段(通常是具有唯一ID的范围)时,用户开始键入某人的名称,并设法在jeditable生成的输入字段中显示标签名称+姓氏.我的问题是我的数据库中的某些联系人具有相同的名称+姓氏.因此,发送结果"姓名+姓氏"将不允许我获得正确的联系.相反,我需要发送与该联系人关联的ID.
有没有人设法创建一个涉及最新的ui-autocomplete的新自定义输入,其中ID将存储在隐藏的输入中,然后在标签显示在可见输入字段中时发布到处理脚本?
附加问题:任何人都可以确认绝对不可能使用ui-autocomplete,其中标签显示在输入字段中并且id存储在相同输入的值中?隐藏的输入总是必要的吗?
提前谢谢了
我正在尝试编写一个JQuery自动完成脚本,它将通过AJAX调用url并在用户将数据输入表单时更新自动完成结果.
我有我的AJAX设置,目前正在返回JSON.但我不知道如何获得自动完成功能来调用它并使用响应.我设法让以下工作,但这是静态数据,所以对我的任务没有好处:
$("input#name").autocomplete({
source: ["c++", "java", "php", "coldfusion", "javascript", "asp", "ruby"]
});
Run Code Online (Sandbox Code Playgroud)
干杯.
我有一个jQuery UI 1.8自动完成表单,从Rails控制器获取远程JSON数据.
$('input#test').autocomplete({
source: function( request, response ) {
$.getJSON(
"<%= find_stuff_url(:format => :json) %>",
request,
function(data){
console.log(data);
function(data) {
$.map(data, function(item) {
return {
"label" : item.control_point.label,
"value" : item.control_point.geonames_uri
}
});
});
},
minLength: 2,
select: function( event, ui ) {
// ...
}
});
Run Code Online (Sandbox Code Playgroud)
这个Rails控制器只返回一个Objects(实际上是ActiveRecord实例)数组,序列化为JSON.我想使用此数据填充自动填充列表.现在,我收到的是一系列序列化的ActiveRecord对象 - 例如,其中一个对象可能是:
Object
control_point: Object
geonames_uri: "http://sws.geonames.org/5128581/"
label: "New York (US)"
lat: "40.7142691"
lng: "-74.0059729"
map_id: 1
name: "New York City"
Run Code Online (Sandbox Code Playgroud)
但是,jQuery Autocomplete 可能需要 …
我试图修改jQuery UI的这个例子来接受二维JSON数据. http://jqueryui.com/demos/autocomplete/#remote-with-cache
var cache = {}, lastXhr;
$( "#birds" ).autocomplete({
minLength: 2,
source: function( request, response ) {
var term = request.term;
if ( term in cache ) {
response( cache[ term ] );
return;
}
lastXhr = $.getJSON( "search.php", request, function( data, status, xhr ) {
cache[ term ] = data;
if ( xhr === lastXhr ) {
response( data );
}
});
}
});
Run Code Online (Sandbox Code Playgroud)
我如何修改它以使用JSON数据中的'name'值,如下所示:
[{"name":"TEST1","slug":"blah-blah"},{"name":"TEST","slug":"example-slug-here"}]
Run Code Online (Sandbox Code Playgroud) 我有一个输入框.单击输入框时,将显示自动完成源中的所有项目.当用户选择一个项目时,输入框被正确填充.一切正常......但是我想要更多的东西,而我却无法看到如何做到这一点.我希望第一个输入框不能被用户编辑.目前,他可以手动输入值.如果我把readonly放在我的CSS中,输入就不再可点击了....所以我看不出怎么做.哦顺便说一句,在不想使用组合框.输入必须保持输入.非常感谢您提前回复.干杯.渣.
我的HTML:
<input type="text" id="my-input" />
Run Code Online (Sandbox Code Playgroud)
我的js:
$(function() {
var availableTags = [
"00","15","30","45"
];
$("#my-input").autocomplete({
source: availableTags,
minLength: 0
}).click(function() {
$(this).val("");
$(this).autocomplete("search");
});
});?
Run Code Online (Sandbox Code Playgroud)
我正在尝试实现一个jQuery自动完成搜索栏,以便在Google AppEngine(GAE)上托管.我看过帖子表明如果我想使用远程源,我必须自己过滤结果.如果我将列表中的列表作为数组存储,如果过滤正确,那么我也尝试将从GAE返回的大型服务器端JSON数组转换为本地客户端数组,以避免需要手动过滤.两种尝试都没有奏效.
获取过滤的非本地结果的最简单方法(对于jQuery/.js初学者)是什么?
这是我尝试使用jQueryui文档中提供的正则表达式示例,以及在SO上发布的其他示例.如果我在搜索栏中输入"c",我的下拉列表只会显示并返回字母c.
GAE .py代码:
class Search(webapp2.RequestHandler):
def get(self):
data = ["chickenpox", "chlamydia", "cholera" ]
tags = json.dumps(data)
self.response.out.write(tags)
Run Code Online (Sandbox Code Playgroud)
模板代码:
注意:'/search'指向返回json数据的GAE服务器处理程序.
<script>
var availableTags = '/search';
$(function() {
$( "#autocomplete" ).autocomplete({
source: function( request, response ) {
var matcher = new RegExp( "^" + $.ui.autocomplete.escapeRegex( request.term ), "i" );
response( $.grep( availableTags, function( item ){
return matcher.test( item );
}) );
},
minLength: 1,
select: function( event, ui ) {
$("#user_input").html('Selected: '+ ui.item.value);
var entry = ui.item.value; …Run Code Online (Sandbox Code Playgroud) google-app-engine jquery-ui autocomplete jquery-ui-autocomplete
我采用了jQuery UI Autocomplete 的简单类别示例,并将其集成到我的应用程序中.当我开始在搜索栏中输入内容时,我在Firebug中收到错误"TypeError:that._renderItemData不是函数".
我也有一个jQuery没有冲突.
jQuery(document).ready(function($) {
$.widget( "custom.catcomplete", $.ui.autocomplete, {
_renderMenu: function( ul, items ) {
var that = this,
currentCategory = "";
$.each( items, function( index, item ) {
if ( item.category != currentCategory ) {
ul.append( "<li class='ui-autocomplete-category'>" + item.category + "</li>" );
currentCategory = item.category;
}
that._renderItemData( ul, item );
});
}
});
$(function() {
var data = [
{ label: "anders", category: "" },
{ label: "andreas", category: "" },
{ …Run Code Online (Sandbox Code Playgroud) 我目前.data( "ui-autocomplete" )._renderItem = function( ul, item )在我的页面中的三个地方使用.现在我需要再添加一个,我已经完成了.
但是这次我得到了错误信息
TypeError:this._renderItem(...)未定义
奇怪的是,如果我的IF测试是假的,我只会得到这个.
.data( "ui-autocomplete" )._renderItem = function( ul, item ) {
// If only one row is returned and ID = 0, then return 'no result' message
if(item.id == '0') {
return jQuery( "<li></li>" )
.data( "item.autocomplete", item )
.append( "<div class='no-result'>"+ item.value + "</div>" )
.appendTo( ul );
}
Run Code Online (Sandbox Code Playgroud)
我无法弄清楚为什么它在这里失败了,而不是在其他3个地方.某处有冲突吗?
这是我的代码
jQuery('#my-selector').autocomplete({
minLength: 2,
source: function( request, response ) {
jQuery.ajax({
url: callback_url,
dataType: "json",
data: …Run Code Online (Sandbox Code Playgroud) 这是一个简单的问题,但是如何禁用jQuery自动完成的下拉列表?当用户开始输入时,我在响应回调上运行我自己的函数.我不需要任何其他东西出现.这就是我所拥有的:
$( "#search" ).autocomplete({
source: "/app/friends",
minLength: 2,
response: function( event, ui ) {
$(".ui-menu-item").hide(); //i hoped this would work
display(ui.content);
}
});
Run Code Online (Sandbox Code Playgroud)