我正在开发ASP.NET MVC应用程序。
我的下拉菜单没有完全下降,但我已经给出了下拉的感觉。
用户可以在列表中添加n个产品。
当用户开始在文本框中键入内容时,以输入字符开头的产品将开始显示在该文本框的下方。看图像......
从下拉菜单中选择项目时工作正常。
现在,当我想获得用户添加的产品的产品ID时,就会出现问题。
我想获得用户添加的产品ID数组。
我的控制器代码
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);
}
Forms View Code,用于从Controllers方法中获取数据的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>
如何在保存记录时获取此ID?
答案 0 :(得分:0)
这可能就是你想要的。
onclick
按钮的 create
你调用jquery处理程序并获取div或spans的值,无论你使用什么,并将所有这些值放在数组中。然后你可以将数组的值赋给一些隐藏的元素,并在提交表单
var ids=[];
$('span[id^=ProductCode]').each(function(){
ids.push(parseInt($(this).text()));
});
var st=ids.join();
alert(st);
$('#hdn').val(st);