【发布时间】:2016-09-26 19:06:45
【问题描述】:
这是我在这个论坛上的第一条消息,提前感谢您的帮助,如果我在这里犯了更大的错误,我们深表歉意。
我正在尝试实现一个 select2 JQuery 自动完成组合框。
我复制了一些代码,但我看不出我的错误在哪里,但编辑文本看起来像一个普通的编辑文本,而不是更改为 Select2,JavaScrypt 出于某种原因无法正常工作。
这是我的代码:
我的 indexcshtml 中的引用:
<link href="~/Content/css/select2.css" type="text/css" rel="stylesheet" />
<script src="~/Scripts/jquery-3.1.0.js"></script>
<script src="~/Scripts/select2.js"></script>
<script src="~/Scripts/jquery.validate.js"></script>
<script src="~/Scripts/jquery.validate.unobtrusive.js"></script>
<script src="~/Scripts/bootstrap.js"></script>
<script src="~/Scripts/bootstrap.min.js"></script>
我的文本框应该在像 cyndarela 这样的 Combobox 中转换!
@using (Html.BeginForm())
{
@Html.TextBoxFor(a => a.SupplierId, new { id = "supplier" }) @Html.ValidationMessageFor(a => a.SupplierId)
<br />
<button type="submit">Submit</button>
}
最后是我的 JavaScrypt:
<script >
$(document).ready(function () {
var pageSize = 20;
var optionListUrl = '@Url.Action("GetProducts", "Purchases")';
//Method which is to be called for populating options in dropdown //dynamically
$('#supplier').select2(
{
ajax: {
delay: 150,
url: optionListUrl,
//url: '/Purchases/GetProducts',
dataType: 'json',
data: function (params) {
params.page = params.page || 1;
return {
searchTerm: params.term,
pageSize: pageSize,
pageNumber: params.page
};
},
processResults: function (data, params) {
params.page = params.page || 1;
return {
results: data.Results,
pagination: {
more: (params.page * pageSize) < data.Total
}
};
}
},
placeholder: "-- Select --",
minimumInputLength: 0,
allowClear: true,
});
});
</script>
就像#supplier 在脚本中不起作用
感谢你们的时间!
【问题讨论】:
-
只是一个评论...我认为验证不会在您的 SupplierId 字段上进行,因为您使用 {new id="supplier'} 更改了元素的 id。除非它使用binging 的 name 属性,验证器将找不到名为“SupplierID”的元素。
-
我明白你的意思,它对我有帮助。谢谢
标签: javascript jquery asp.net-mvc jquery-select2