isNaN然后显示不工作

问题描述:

我有这个简单的自动完成与JSON结果。假设没有适合显示div的值(所以用户可以创建一个新实体),并且我不明白为什么它不显示隐藏的div。isNaN然后显示不工作

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); 
    } 
​​
$("#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, 
}); 

您在返回的科目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, 
     } 
    })); 

    } 
} 
+0

感谢你的帮助,它的做工精细。 – Danny

+0

很高兴我能帮到你。 – BenG