未捕获的TypeError:未定义不是函数
我收到消息Uncaught TypeError:Undefined is not a function
当我尝试在我的家庭控制器中调用方法时, Uncaught TypeError:Undefined is not a function
。
建议也许是为什么我收到这条消息?
findIdpActivities = function (pernr, callback) { restEndPoint = serviceBase + 'Home/FindIdpActivities'; data = "{'perNr':'" + pernr + "'}"; makeJsonDataAjaxCall(callback); }; makeJsonDataAjaxCall = function (callback, obj) { $.ajax({ type: "POST", url: restEndPoint, contentType: "application/json; charset=utf-8", dataType: "json", data: data, success: function (data) { callback(data); } }); };
按钮点击后执行方法。
$(document).on("click", "input[name=btnViewActivities]", function (e) { e.preventDefault(); var value = $(this).parent().find("input[name=hiddenPerNr]").val(); dataService.findIdpActivities(value); });
这是HomeController中的方法
[HttpPost] public JsonResult FindIdpActivities(string perNr) { viewModel.GetIdpActivities(perNr); return Json(new { Activities = viewModel.IdpActivities }); }
这是在您尝试在定义函数之前调用函数时发生的常见javascript错误。
例如,虽然此代码按预期工作:
var sayHello= function () { return 'Hello!' }; alert(sayHello());
如果颠倒语句的顺序,则会出现“未捕获的TypeError:undefined不是函数”错误:
alert(sayHello()); var sayHello= function () { return 'Hello!' };
因此,我建议您仔细检查您的脚本是否正确加载,并且findIdpActivities正在作为dataService对象的函数正确初始化。