Javascript 使用jquery自动完成组合框

Javascript 使用jquery自动完成组合框,javascript,jquery,combobox,autocomplete,Javascript,Jquery,Combobox,Autocomplete,我对使用jquery的自动竞争组合框有问题。在这里,我动态添加新的组合框。有一个添加按钮功能可以动态添加组合框 我的autocomplete在所有组合框中都可以正常工作,但问题是每当我在任何组合框上触发事件时,操作都会在最后一个组合框上发生。组合框索引存在问题。我已经在函数setDamagedVehicle(status)中编写了小部件代码,这样我可以跟踪每个组合框,但它不工作。每当我点击add按钮时,就会调用函数setDamagedVehicle(status),它工作正常,但是juery代码

我对使用jquery的自动竞争组合框有问题。在这里,我动态添加新的组合框。有一个添加按钮功能可以动态添加组合框

我的autocomplete在所有组合框中都可以正常工作,但问题是每当我在任何组合框上触发事件时,操作都会在最后一个组合框上发生。组合框索引存在问题。我已经在函数setDamagedVehicle(status)中编写了小部件代码,这样我可以跟踪每个组合框,但它不工作。每当我点击add按钮时,就会调用函数setDamagedVehicle(status),它工作正常,但是juery代码只在最后一个状态值上执行。请帮助我如何跟踪每个组合框。我无法在隐藏变量中保存正确的值。这里我使用的是struts框架

<script language="JavaScript" type="text/javascript">
    function setDamagedVehicle(status){
      //Here I have written the at widget code so that I can track each and every combobox using the status value.            
     (function( $ ) {
         $.widget( "ui.combobox", {
              _create: function() {
                this.wrapper = $( "<span>" )
                  .addClass( "custom-combobox" )
                  .insertAfter( this.element );

                this.element.hide();
                this._createAutocomplete();
                this._createShowAllButton();
              },

             _createAutocomplete: function() {
                    // some statements
                    this._on( this.input, {
                    autocompleteselect: function( event, ui ) {
                    ui.item.option.selected = true;
                    this._trigger( "select", event, {
                    item: ui.item.option
                    });
                    var selectedObject = ui.item.value;
                    var selectedObjectCode = ui.item.option.value;
                    $( "#vehicleObjectCodeText-"+status ).val(selectedObjectCode);                        
                    $( "#objectValueText-"+status ).val(selectedObject.trim());                         
                    var selectBox = document.getElementById('claimObjectCombo-'+status);

               // saving selected item in form through hidden selectedIndexText field
               for(var i = 0, j = selectBox.options.length; i < j; ++i) {
                    if(selectBox.options[i].innerHTML === selectedObject) {
                          $( "#selectedIndexText-"+status).val(i);
                           break;
                          }
                    }
              },

            });

          },   /* _createAutocomplete close */
      _createShowAllButton: function() {
          // fine
       },
     _source: function( request, response ) {
          //fine
       },
     _destroy: function() {
          // fine
      }
     });     /* widget close */
    })( jQuery );   /* function close */ 

}
 $(function() {
       $( ".objectComboBox" ).combobox();
 });
</script>

<logic:iterate collection="${claimNotificationForm.vehicles}" id="vehicle" property="vehicles" indexId="vehicleIndex">
<td class="tiivis">
   <div class="ui-widget">
     <!-- hidden element with vehicleObjectValue is set to save selected vehicle code before form submit -->
    <html:hidden property="vehicleObjectValue[${vehicleIndex}]" styleId="objectValueText-${vehicleIndex}"/>
    <!-- hidden element with selectedIndex is set to save selected vehicle index before form submit -->
     <html:hidden property="selectedIndex[${vehicleIndex}]" styleId="selectedIndexText-${vehicleIndex}"/>
     <html:hidden property="vehicleObject[${vehicleIndex}]" styleId="vehicleObjectCodeText-${vehicleIndex}"/>
    <html:select  property="vehicleObject[${vehicleIndex}]" styleId="claimObjectCombo-${vehicleIndex}" styleClass="objectComboBox" onkeypress="enterStopper(event);">
    <!-- values are getting from other system and this is working fine -->
    <vehicles:optionsCollection property="objectTypes"  sort="true"    chooseKey="000" chooseResourceKey="page.claim.search.object.name"/>
    </html:select>
  </div>    
 </td>

<script language="JavaScript" type="text/javascript">
         setDamagedVehicle(${vehicleIndex});
</script>
</logic:iterate>

功能设置损坏车辆(状态){
//在这里,我编写了at小部件代码,以便使用status值跟踪每个组合框。
(函数($){
$.widget(“ui.combobox”{
_创建:函数(){
this.wrapper=$(“”)
.addClass(“自定义组合框”)
.insertAfter(此元素);
this.element.hide();
这是。_createAutocomplete();
这是。_createShowAllButton();
},
_createAutocomplete:function(){
//一些声明
此。_on(this.input{
自动完成选择:功能(事件、用户界面){
ui.item.option.selected=true;
此._触发器(“选择”,事件{
项目:ui.item.option
});
var selectedObject=ui.item.value;
var selectedObjectCode=ui.item.option.value;
$(“#车辆对象代码文本-”+状态).val(选择对象代码);
$(“#objectValueText-”+status).val(selectedObject.trim());
var selectBox=document.getElementById('claimObjectCombo-'+状态);
//通过隐藏的SelectedIndex文本字段在表单中保存选定项
对于(变量i=0,j=selectBox.options.length;i
大家好,需要帮忙吗请帮帮忙@沃克