2014-01-17 4 views
1

У меня есть форма, которая имеет динамически создаваемые поля формы автозаполнения. Я хотел бы получить имя поля автозаполнения и отправить его на cfc coldfusion в запросе данных. Это код, который я стараюсь не повезло.Найти имя ввода формы динамически созданного автозаполнения

$("[id^=applinput_]").each(function(){ 
      app_id = this.id.split("_"); 
      id = app_id[1]; 

      $("#applinput_"+ id).autocomplete({ 
       source: function(request, response) { 
        $.ajax({ 
         url: "cfc/cfc_Appliance.cfc?method=getAppliance&returnformat=json", 
         dataType: "json", 
         data: { 
          nameApplianceSearchString: request.term, 
          nameApplianceTypeString: $(this).attr("name"), 
          maxRows: 25, 
          style: "full", 
         }, 

         success: function(data) { 
          response(data); 
         } 
        }) 
       }, 
       select: function(event, ui) { 
         //separate id and checkbox 
         app_selid = this.id.split("_"); 
         //separate id 
         applid = app_selid[1]; 
       $(this).val(ui.item.label); 
       $('#typeinput_' + applid).val(ui.item.type); 
       $('#hidden_typeinput_' + applid).val(ui.item.typeID); 
       return false; 
       }, 
      }) 
     }) 
     .data("autocomplete")._renderItem = function(ul, item) 
      { 
       return $("<li></li>") 
       .data("item.autocomplete", item) 
       .append('<a onmouseover=$("#span' + item.value + '").show(); onmouseout=$("#span' + item.value + '").hide();><span style="float:left;" >' + item.label + '</span><span id="span' + item.value + '" style="float: right;height:inherit; font-size: 13px; font-weight: bold; padding-top: 0.3em; padding-right: 0.4em; padding-bottom: 0.3em; padding-left: 0.4em; display: none; cursor:pointer; " onclick=javascript:event.stopPropagation();showprofile("' + item.value + '");><!---view profile---></span><div style="clear:both; height:auto;"></div></a>') 
       .appendTo(ul); 
      };  
     } catch(exception){} 
     }); 

Когда запрос выстреливает на ск, он делает это без nameApplianceTypeString.

+0

Возможно, вы действительно хотите: '$ (this) .attr (" id ")'? – gibberish

+0

нет ... Мне действительно нужно значение атрибута name того же поля формы ввода. Имя динамическое. –

ответ

1

Заменить этот кусок:

data: { 
     nameApplianceSearchString: request.term, 
     nameApplianceTypeString: $(this).attr("name"), 
     maxRows: 25, 
     style: "full", 
     }, 

с этим:

data: { 
     nameApplianceSearchString: request.term, 
     nameApplianceTypeString: $(this.element).attr("name"), 
     maxRows: 25, 
     style: "full" 
     }, 

Вот скрипка: http://jsfiddle.net/jeBUV/

Обратите внимание, что я должен был изменить его немного, чтобы получить вызов AJAX для работы в jsfiddle. См. Документы jsfiddle для пояснения при создании запросов ajax в скрипте: http://doc.jsfiddle.net/use/echo.html

+1

Работал как шарм !! Благодарю вас. –

Смежные вопросы