开发者

Using jQuery-ui autocomplete variables in further jQuery-ui autocomplete functions

开发者 https://www.devze.com 2023-01-25 00:05 出处:网络
How can I use the selected item from a jQuery-ui autocomplete in a further jQuery-ui autocomplete function?

How can I use the selected item from a jQuery-ui autocomplete in a further jQuery-ui autocomplete function?

e.g. for this HTML:

<div class="ui-widget">
    <label for="project">Project: </label>
    <input id="project" />
    <label for="phase">Phase: </label>
    <input id="phase" />
    <label for="filename">Project: </label>
    <input id="filename" />
</div>

I am using the following autocomplete function with a JSON endpoint to supply the data.

$(function() {
$( "#project" ).autocomplete({
    source: baseUrl+"json/listtitles",
    minLength: 2,
    select: function( event, ui ) {
    }
});
});

Then in this second autocomplete I want to take the selected value from the first autocomplete function and use it to build the URL string for use in the source attribute of a 开发者_运维问答second autocomplete (shown here as valueFromFirstAutocomplete).

$(function() {
$( "#phase" ).autocomplete({
    source: baseUrl+"json/listphases/"+valueFromFirstAutocomplete,
    minLength: 2,
    select: function( event, ui ) {
    }
});
});


Customize the source option with a callback, adding the additonal parameter to the URL:

$( "#project" ).autocomplete({
    source: baseUrl+"json/listtitles",
    minLength: 2
});
$( "#phase" ).autocomplete({
    source: function(request, response) {
        $.get(baseUrl + "/json/listphases/" + $("#project").val(), request, response);
    },
    minLength: 2
});


You could just put one inside the other....

Is there some reason this won't work?

$(function() {
$( "#project" ).autocomplete({
    source: baseUrl+"json/listtitles",
    minLength: 2,
    select: function( event, ui ) {
       $(function() {
       $( "#phase" ).autocomplete({
           source: baseUrl+"json/listphases/"+ui.item.value,
           minLength: 2,
           select: function( event, ui ) {
           }
       });
       });
    }
});
});

To use these independently you could do something like this:

var funclist = {
    populate1 : function() {
      $( "#project" ).autocomplete({
        source: baseUrl+"json/listtitles",
        minLength: 2,
        select: populate2;
      },

   populate2 : function(event,ui) {
      $( "#phase" ).autocomplete({
        source: baseUrl+"json/listphases/"+ui.item.value,
        minLength: 2,
        select: populate3;
     }
   populate3 : ; // etc
}

$(funclist.populate1);
0

精彩评论

暂无评论...
验证码 换一张
取 消