isNaN然后显示不工作

时间:2016-03-02 13:21:19

标签: jquery json jquery-ui asp.net-mvc-5

我有这个带有JSON结果的简单自动完成功能。假设没有值适合显示div(因此用户可以创建一个新实体),我无法理解它为什么不显示隐藏的div。

public JsonResult GetSubjectsName(string term)
{
    var results = db.subjects.Where(s => term == null || s.SubjectName.ToLower().Contains(term.ToLower()))
        .Select(x => new 
        { 
            id = x.SubjectId, 
            value = x.SubjectName 
        }).Distinct().ToList();
        return Json(results, JsonRequestBehavior.AllowGet);
    }
<div id="divId" style="background-color: red; height: 250px; display: none">
    blabla
</div>
$("#term").autocomplete({
    source: function (request, response) {
        $.ajax({
            url: "GetSubjectsName",
            data: "{'term': '" + request.term + "' }",
            dataType: 'json',
            type: "POST",
            contentType: "application/json; charset=utf-8",
            dataFilter: function (data) { return data; },
            success: function (data) {
                response($.map(data, function (item) {
                    if (isNaN(item.id)) {
                        $("#divId").show("slow");
                    };
                    return {
                        label: item.value,
                        value: item.value,
                        id: item.id,
                    }
                }));
            }
        });
    },
    minLength: 2,
});

1 个答案:

答案 0 :(得分:1)

您将返回List个主题,我认为这些主题都会id

因此,检查而不是if isNaN可以检查length: -

success: function(data) {

  if (!data.length) {

    $("#divId").show("slow");

  } else {

    response($.map(data, function(item) {
      return {
        label: item.value,
        value: item.value,
        id: item.id,
      }
    }));

  }
}