2011-09-02 85 views
0

在我的表單中,我在For循環中添加了一些輸入元素,如下所示。ASP.NET MVC - 使用javascript在運行時添加表單元素

@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的功能,如:

$(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 } 
        })) 
       } 
      }) 
     }, 
    }); 
}); 

這工作得很好,我知道input元素/在那裏我專門添加元素到HTML的ID,並且不添加它通過一個循環。

如何將上面的jQuery功能添加到在For循環中創建的所有貨幣文本框?我需要在運行時添加Javascript嗎?

分辨率

改變了函數聲明的類名,並加入該類用作下面的文本框;

$("#CurrencyClass") 

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

感謝您的及時響應!

回答

1

您需要能夠選擇所有這些文本框來運行自動完成腳本,爲此,您可以添加一個類,然後更新腳本中的選擇器。

在視圖:給所有文本框使用new {@class = "yourClass"}作爲htmlAttributes參數到文本框輔助類(或其等效VB)(見http://msdn.microsoft.com/en-us/library/ee703535.aspx#Y200)的。

在腳本:替換$("#HomeCurrencyID")$(".yourClass"),它將運行這些功能的所有匹配的元素,這將是文本框與yourClass的。

+1

我當然覺得自己像個傻瓜! 我之前嘗試過這個類的想法,但我無法實現它的工作。原來我只剩下一個;字符在我的班名 感謝您的超級提示和詳細的迴應! – Tom

相關問題