【问题标题】:typeahead Autocomplete Throwing error预输入自动完成引发错误
【发布时间】:2016-07-13 12:31:27
【问题描述】:

您好,我正在尝试在我的 MVC 项目中使用“typeahead.js”之类的 http://sriniavatar.com/bootstrap-typeahead-in-asp-net-mvc/ 来实现自动完成文本框

下面是我的脚本

<script type="text/javascript">
    var substringMatcher = function (strs) {
        return function findMatches(q, cb) {
            var matches, substringRegex;               
            matches = [];                
            substrRegex = new RegExp(q, 'i');                
            $.each(strs, function (i, str) {
                if (substrRegex.employees(str)) {
                    matches.push(str);
                }
            });

            cb(matches);
        };
    };

    $.post('/Employee/TagSearch', null, function (data) {
        var employees = data;
        $('#sriniavatar').typeahead({
            hint: true,
            highlight: true,
            minLength: 1
        },
        {
            name: 'employees',
            displayKey: 'value',
            source: substringMatcher(employees)
        });
    });

下面给出了我的员工控制器的 TagSearch 方法

[HttpPost]
    public ActionResult TagSearch(string term)
    {
        DataAccess db = new DataAccess();
        var employees = db.GetEmployeesName().ToList();
        //if (!String.IsNullOrEmpty(term))
        //{
        //    employees = employees.Where(e => e.Surname.Contains(term.Trim())
        //    || e.ForeName.Contains(term.Trim())
        //    || e.Win_UserName.Contains(term.Trim())
        //    ).ToList();
        //}
        return Json(employees, JsonRequestBehavior.AllowGet);
    }

现在**问题是,当我运行程序时,它显示以下错误 *“http://localhost:57512/Employee/ViewEmployees 中第 95 行第 21 列的未处理异常

0x800a01b6 - JavaScript 运行时错误:对象不支持属性或方法“员工””***
即使我在项目中引用了以下脚本

    <link href="~/Content/typeahead.css" rel="stylesheet" />        <script "//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js">
</script> <script src="~/Scripts/typeahead.js"></script> <br/>...Page Contents...<br>
    <script src="~/Scripts/typeahead.mvc.model.js"></script>
    @RenderSection("scripts", required: false)

【问题讨论】:

    标签: javascript jquery asp.net-mvc typeahead.js


    【解决方案1】:

    我不知道有任何带有 regExp 的员工方法的 JavaScript

    if (substrRegex.employees(str)) {    
                    ^^^^^^^^^
    

    相信你想要test

    if (substrRegex.test(str)) {
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多