我有一个应用程序(MVC5 / C#),用户已在下拉列表中请求了可搜索的文本框。就像Select2一样。而且Select2看起来非常简单明了。但是,我无法使其正常运行。起初,我以为可能是应用程序中的某些内容-因此我决定隔离Select2并创建一个全新的应用程序来简单地测试Select2。而且仍然无法正常工作。
我在他们的网站上遵循了一个示例,如下所示:
在标头部分中,我需要包括我的js,select2js和select2css文件(我将它们放在布局文件中,因为Views没有标头。我也尝试在视图中直接引用这些文件-两种方式无效)。
@Scripts.Render("~/Scripts/jquery-3.3.1.min.js")
@Scripts.Render("~/Scripts/select2.min.js")
@Scripts.Render("~/Content/css/select2.min.css")
这是我的视图/ HTML(非常基本)
<select class="js-example-basic-single" name="state">
<option value="AL">Alabama</option>
<option value="WY">Wyoming</option>
</select>
还有我的Doc Ready(视图底部)
<script>
$(document).ready(function () {
//alert("Here");
$('.js-example-basic-single').select2();
alert("Here Again")
});
</script>
这是上述情况下发生的情况:页面加载。我得到了第一个警报(因此,我知道我们已经走了这么远)。第二个警报永远不会发生。而且下拉列表仍然只是没有搜索框的基本下拉列表。我认为这意味着无法找到select2 js脚本?但为什么?路径正确。我在这里想念东西吗?
我尝试在Layout文件的标题中以及直接在视图底部调用脚本。我也尝试将Select2与元素id而不是类一起使用,因为我已经看到了两种方式的示例。
有什么建议吗?
其他信息:
Firefox和Edge浏览器不会产生任何错误 IE在发出第一个警报后会踢出以下错误
错误:对象不支持属性或方法“ select2”
其他信息(2):
下面是我的bundleConfig
public class BundleConfig
{
// For more information on bundling, visit https://go.microsoft.com/fwlink/?LinkId=301862
public static void RegisterBundles(BundleCollection bundles)
{
bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
"~/Scripts/jquery-{version}.js"));
bundles.Add(new ScriptBundle("~/bundles/jqueryval").Include(
"~/Scripts/jquery.validate*"));
// Use the development version of Modernizr to develop with and learn from. Then, when you're
// ready for production, use the build tool at https://modernizr.com to pick only the tests you need.
bundles.Add(new ScriptBundle("~/bundles/modernizr").Include(
"~/Scripts/modernizr-*"));
bundles.Add(new ScriptBundle("~/bundles/bootstrap").Include(
"~/Scripts/bootstrap.js"));
bundles.Add(new StyleBundle("~/Content/css").Include(
"~/Content/bootstrap.css",
"~/Content/site.css"));
}
}
}