如何删除特定的字符和文本

时间:2016-11-16 08:29:20

标签: javascript jquery asp.net-mvc

我已经使用jquery库完成了自动完成功能

  

使用jquery-ui-1.12.1.min.js

。我已修改它以使用用户名和全名进行搜索。它将显示如下图像

enter image description here

当我选择值时,它会将整个文本粘贴到输入框中。

enter image description here

这是我的问题,如何修改它以显示为图像,但是当我选择值时,它只会将用户名粘贴到输入框中?

当我选择第一个值

时,我只希望nonstop00000将其粘贴到输入框中

这是我的javascript

var langFile = "../Scripts/jquery.dataTables.en-US.txt";  

var oTable = $('.gvDataTable').dataTable({  
    "oLanguage": {  
        "sUrl": langFile  
    },  
    "sScrollX": "99%",    
    "fnDrawCallback": function (oSettings) {/*Re-Create serial no for the table*/  
        /* Need to redo the counters if filtered or sorted */  
        if (oSettings.bSorted || oSettings.bFiltered) {  
            for (var i = 0, iLen = oSettings.aiDisplay.length; i < iLen; i++) {  
                $('td:eq(0)', oSettings.aoData[oSettings.aiDisplay[i]].nTr).html(i + 1);  
            }  
        }  
         /*Put checkboxlist after filter to show/hide columns after excel export*/  
        $('.cbShowOrHideGvCols').appendTo('div.DTTT_container');   
    },  

}); 

这是我的搜索控制器

$(document).ready(function () {
    $("#id").autocomplete({
        source: function(request,response) {
            $.ajax({
                url: '@Url.Content("~/UserManagement/AutoCompleteUser")/',
                type: "POST",
                dataType: "json",
                data: { term: request.term },
                success: function (data) {
                    response($.map(data, function (item) {
                        return [{ label: item.Username + " | " + item.FullName, value: item.id }];
                    }))
                }
            })
        },
        messages: {
            noResults: "", results: ""
        }
    });
})

这是我的自动完成控制器

 if (!String.IsNullOrEmpty(searchString))
            {
                user = user.Where(s => s.Username.Trim().Contains(searchString.Trim())
                                       || s.FullName.Trim().Contains(searchString.Trim()));
            }

这是我的观点

public JsonResult AutoCompleteUser(string term)
    {
        var result = (from r in db.UserTables
                      where ((r.Status == "Active") && (r.Username.ToLower().Contains(term.ToLower()) || (r.FullName.ToLower().Contains(term.ToLower()))))
                      select new { Username = r.Username, FullName = r.FullName }).Distinct();
        return Json(result);
    }

1 个答案:

答案 0 :(得分:2)

要实现此目的,您可以使用select事件来修改要放入输入的值。试试这个:

$("#id").autocomplete({
    // your settings...
    select: function(e, ui) {
        e.preventDefault();
        $('#id').val(ui.item.label.split('|')[0].trim());
    }
});