Я разрабатываю приложение ASP.NET MVC.
У меня выпадающее меню не совсем сбрасывается, но я даю ощущение выпадающего списка.
Пользователь может добавить n количество продуктов в список.
Когда пользователь начинает вводить текст в текстовое поле, в это текстовое поле начинаются следующие продукты, начинающиеся с введенного символа. см. изображение...
Он работает отлично, выбирая элемент из раскрывающегося списка.
Теперь проблема возникает, когда я хочу получить идентификатор продукта Продуктов, добавленных пользователем.
Я хочу получить массив идентификатора продукта, добавленного пользователем.
Код моего контроллера
public ActionResult NewvendorList(string term)
{
var results = new[]
{
new { id = "1", label = "Suraj Metels" },
new { id = "2", label = "A.B. Infra" },
new { id = "3", label = "Momin Brother" },
new { id = "4", label = "Fort"},
new { id = "5", label = "Malabar Hill" },
new { id = "6", label = "A.B.C. Limited" },
};
var result3 = results.Where(s => s.label.ToLower().StartsWith(term.ToLower())).Select(w => w).ToList();
return Json(result3, JsonRequestBehavior.AllowGet);
}
Код вида форм, код JQuery, используемый для получения данных из метода контроллеров...
<script type="text/javascript">
$(document).ready(function () {
var i = 0;
$("#lnkAddProduct").on("click", function () {
//$('#ProductId').val("");
@*var url = "@Url.Content("~/Scripts/GeneralScript.js")";
$.getScript(url, function () {
});*@
var d = '<div class="addedProduct "><div class="control-group " style="margin-bottom:10px;"><input type="text" class="ProductName span2 pull-left" id="Product_Name_' + i + '" name="Product_Name" value="" placeholder="start typing to load products" )"/><input type="hidden" class="ProductCode" name="Product_Code" id="ProductCode_' + i + '" value=/><a href="#" class="clsremove font-midium" style="margin-left:5px;margin-top:5px;" id="remove_' + i + '">remove</a></div></div>';
$('#ProductList').append(d);
alert("newID:"+i);
$(".clsremove").unbind("click").click(function () {
$(this).closest(".addedProduct").remove();
});
$('body').delegate(".ProductName", "focusin", function () {
$(this).autocomplete({
source: '@Url.Action("NewvendorList","Product")',
minLength: 1,
select: function (evt, ui) {
$("#Product_Name_"+ i ).val(ui.item.label);
$("#ProductCode_" + i).val(ui.item.id);
alert($("ProId" + $("#ProductCode_" + i).val(ui.item.id)));
}
});
});
i = i + 1;
});
});
</script>
Как получить этот идентификатор при сохранении записи?
Это может быть то, что вы хотите.
onclick
кнопки create
u вызовите обработчик jquery и получите значения div или span, независимо от того, что вы используете, и поместите все эти значения в массив. то вы можете присвоить значения массива некоторому скрытому элементу и получить доступ к нему со стороны контроллера при отправке формы
var ids=[];
$('span[id^=ProductCode]').each(function(){
ids.push(parseInt($(this).text()));
});
var st=ids.join();
alert(st);
$('#hdn').val(st);
get the Product ID's of the Products which have added by user