gpt4 book ai didi

jquery - 如何为两个组合框定义不同的源?

转载 作者:行者123 更新时间:2023-12-01 07:28:25 24 4
gpt4 key购买 nike

我使用取自 jquery examples 的组合框代码。这是modified使用远程源。

现在我需要添加second combobox与另一个远程来源(国家而不是城市)。当然,我可以复制粘贴 $.widget("ui.combobox", { 给定的不同源,但是有什么方法可以简化代码吗?

更新。看来我应该修改以下代码:

  $.widget( "ui.combobox", {
_create: function() {
var self = this,
select = this.element.hide(),
selected = select.children( ":selected" ),
value = selected.val() ? selected.text() : "";
var input = this.input = $( "<input>" )
.insertAfter( select )
.val( value )
.autocomplete({
delay: 0,
minLength: 0,

source: function (request, response) {
// if id of element is equal to something, then use one url, else
// use another url
$.ajax({
url: "search/city", type: "GET", dataType: "json",
data: { term: request.term },
success: function (data) {
response($.map(data, function (item) {
return {
value: item.value,
id: item.id
}
}))
}
})
},

但我不知道如何在 source 函数中获取元素 id。

最佳答案

编辑:使我的帖子更清晰。您只需要使用 self.options 即可获取声明的所有选项。 this.options$.ajax({...}) 中不起作用,因为该上下文中的 this 将返回匿名函数。

如果你改变线路

 $.ajax({
url: "http://ws.geonames.org/searchJSON",

$.ajax({
url: self.options.source,

,那么 ajax 调用将使用您在“构造函数”中提供的任何源 URL。然后你可以简单地做:

$("#cbCountry").combobox({
source: someOtherUrl,
...
});

对于不同的组合框。请参阅http://jsfiddle.net/k2J5v/1/ .

关于jquery - 如何为两个组合框定义不同的源?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8020040/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com