2011-09-02 2 views
0

제 폼에서 For 루프에 다음과 같이 많은 입력 요소를 추가하고 있습니다.ASP.NET MVC - 런타임에 양식 요소를 자바 스크립트로 추가하기

@For Each itm As LineItem In Model.LineItems 
      Dim lnitm As LineItem = itm 
    @<tr> 

      <td>@lnitm.Name 
      </td> 
      <td>@Html.TextBoxFor(Function(model) model.LineItem(lnitm.ID).Value) 
      </td> 
      <td>@Html.TextBoxFor(Function(model) model.LineItem(lnitm.ID).Currency) 
      </td> 
     </tr> 

     Next 

저는 자동 완성 기능을 사용할 수 있도록 통화 텍스트 상자에 jQuery를 추가하고 싶습니다. 내 다른 페이지에서 나는 같은 jQuery를 기능을 사용했습니다 : 나는 특히 HTML에 요소를 추가 해요 입력 요소 /의 ID를 알고 그것을 추가하지 않는 곳은 잘 작동

$(function() { 
$("#HomeCurrencyID").autocomplete({ 
     source: function (request, response) { 
      $.ajax({ 
       url: "/autocomplete/Currencies", type: "POST", dataType: "json", 
       data: { searchText: request.term, maxResults: 10 }, 
       success: function (data) { 
        response($.map(data, function (item) { 
         return { label: item.ID + " (" + item.Symbol + ") " + item.Description, value: item.ID , id: item.ID } 
        })) 
       } 
      }) 
     }, 
    }); 
}); 

루프를 통해.

For 루프에서 생성 된 모든 통화 텍스트 상자에 위의 jQuery 기능을 추가하려면 어떻게합니까? 런타임에 Javascript를 추가해야합니까?

해결

은 클래스 명하는 기능 선언 변경하고 다음 텍스트 상자에 클래스를 첨가;

$("#CurrencyClass") 

@Html.TextBoxFor(Function(model) model.LineItem(lnitm.ID).Currency, New With {Key .class = "CurrencyClass"}) 

감사합니다.

답변

1

이 텍스트 상자를 모두 선택하여 자동 완성 스크립트를 실행할 수 있어야합니다. 이렇게하려면 클래스를 추가 한 다음 스크립트에서 선택기를 업데이트하면됩니다. 뷰

:는 텍스트 박스 헬퍼에 htmlAttributes 파라미터로서 new {@class = "yourClass"}를 이용하여 클래스 (또는 VB 당량) ( http://msdn.microsoft.com/en-us/library/ee703535.aspx#Y200 참조) 텍스트 박스를 모두 제공. 스크립트에서

: $(".yourClass")으로 $("#HomeCurrencyID") 교체, 그것은 yourClass으로 텍스트 상자 될 것입니다 일치하는 모든 요소에 이러한 기능을 실행합니다.

+1

나는 바보처럼 느껴진다. 전에 수업 아이디어를 시도했지만 제대로 작동하지 못했습니다. 내가 떠났음을 알았다. 내 수업 이름에 등장하는 캐릭터 매우 신속하고 자세한 답변을 보내 주셔서 감사합니다! – Tom

관련 문제