2016-11-18 67 views
0

我的web表單模型(AdtFormModel)這一變量:jQuery的自動完成 - 字符串數組

public List<String> TemoinsVille { get; set; } 

我用一個列表,因爲我希望用戶能夠在形式動態地添加更多「TemoinsVille」。現在我有兩個文本框,當我填寫它們時,我的控制器會收到一個包含2個項目的字符串列表。我將添加此功能以便稍後動態添加TemoinsVille。

在我的表單中,我想爲這個TemoinVille變量使用一個自動完成的字段。我使用了一種名爲'AutocompleteTous'的方法,我在表單中的其他地方使用它。我不知道如何編寫腳本,以便自動完成對第二個TemoinVille輸入有效。

我jQuery代碼是:

var auto5 = $('#AdtFormModel_TemoinsVille').autocomplete({ 
     source: '@Url.Action("AutocompleteTous", "InvForm")', 
     minLength: 3, 
     delay: 400 
    }).data("ui-autocomplete"); 
    auto5._renderItem = function (ul, item) { 
     return $("<li>") 
      .attr("ui-autocomplete-item", item) 
      .append(item.label.split("|")[0]) 
      .appendTo(ul); 
    }; 
    auto5._renderMenu = function (ul, items) { 
     var that = this; 
     $.each(items, function (index, item) { 
      that._renderItemData(ul, item); 
     }); 
     $(ul).addClass("dropdown-menu"); 
    }; 

在我看來,我個人有T TemoinVille textboxfor輸入:

@Html.TextBoxFor(x => x.AdtFormModel.TemoinsVille, new { Class = "form-control" }) @Html.ValidationMessageFor(x => x.AdtFormModel.TemoinsVille, null, new { @class = "text-danger" }) 

@Html.TextBoxFor(x => x.AdtFormModel.TemoinsVille, new { Class = "form-control" }) @Html.ValidationMessageFor(x => x.AdtFormModel.TemoinsVille, null, new { @class = "text-danger" }) 

自動完成工程第一個輸入,而不是第二...

下面是兩個輸入的HTML代碼:

<div class="invalidite-section"> 
     <input Class="form-control" id="AdtFormModel_TemoinsVille" name="AdtFormModel.TemoinsVille" type="text" value="" /> <span class="field-validation-valid text-danger" data-valmsg-for="AdtFormModel.TemoinsVille" data-valmsg-replace="true"></span> 
    </div> 

<div class="invalidite-section"> 
     <input Class="form-control" id="AdtFormModel_TemoinsVille" name="AdtFormModel.TemoinsVille" type="text" value="" /> <span class="field-validation-valid text-danger" data-valmsg-for="AdtFormModel.TemoinsVille" data-valmsg-replace="true"></span> 
    </div> 

有什麼建議嗎?

+0

你能分享的HTML還好嗎? –

+0

整個cshtml頁面?我的textboxfor的html代碼有 –

+0

不,您向我們展示了您用於生成html的代碼,我希望看到輸入部分生成。另請檢查我的答案 –

回答

1

您正在爲編號#AdtFormModel_TemoinsVille,這是輸入權嗎? 該ID在頁面上必須是唯一的。所以它只會在找到它的第一個輸入時起作用。

您需要按類別定位元素,然後自動完成應該在所有輸入中工作。

嘗試這樣的事:

var auto5 = $('.form-control input').autocomplete({ // I suppose .form-control is a div that contains the input 
+0

如何定位正確的變量?我的模型(AdtFormModel)變量是一個字符串列表,兩個textboxfor輸入都是該列表的一個元素..我試過 $(。AdtFormModel.TemoinsVille)和$(。TemoinsVille) –

+0

我需要查看生成的html,看看是什麼正確的課程。試試這個:'$('。form-control input')。autocomplete({'。我想.form-control是一個包含輸入的div .. –

+0

謝謝,現在就工作! –