[英]JavaScript runtime error: Function expected
我有以下准备好的功能。
$(document).ready(function() {
var window = $("#window");
viewModel.validator = $("#Details").kendoValidator().data("kendoValidator")({
rules: {
checkPersonContactInfo: function (input) {
if (intakeView.viewModel.get("personDetails.Email") == '' && intakeView.viewModel.get("personDetails.CellPhone") == '' && intakeView.viewModel.get("personDetails.HomePhone") == '' && intakeView.viewModel.get("personDetails.WorkPhone") == '') {
return false;
}
else {
return true;
}
}
},
});
if (!window.data("kendoWindow")) {
window.kendoWindow({
width: "600px",
title: "Valdiation errors",
visible: false
});
};
});
每当我调试时,它都会崩溃,并显示错误消息“ 0x800a138a-JavaScript运行时错误:预期功能”。 我多次检查是否缺少括号,但看不到任何东西。
编辑:发现更多错误的语法,您有不需要的逗号和分号:
$(document).ready(function() {
var window = $("#window");
viewModel.validator = $("#Details").kendoValidator().data("kendoValidator")({
rules: {
checkPersonContactInfo: function (input) {
if (intakeView.viewModel.get("personDetails.Email") == '' && intakeView.viewModel.get("personDetails.CellPhone") == '' && intakeView.viewModel.get("personDetails.HomePhone") == '' && intakeView.viewModel.get("personDetails.WorkPhone") == '') {
return false;
}
else {
return true;
}
}
} // here there was a comma which was not needed.
});
if (!window.data("kendoWindow")) {
window.kendoWindow({
width: "600px",
title: "Valdiation errors",
visible: false
});
} //here you had also a trailing ; which I removed
});
尾随逗号可能是问题所在:
},
如尾随逗号之前提到的是您的代码中的问题。 自ECMAScript 5规范以来,JavaScript对象文字中的尾部逗号是有效的,因此在最新的浏览器中有效。 但是,IE仍然存在问题,在较旧的浏览器中会出现语法错误。
我只是借助WebStorm对其进行了优化,这是WebStorm的输出:-)(您的代码中也有不必要的分号):
$(document).ready(function() {
var window = $("#window");
var viewModel = {};
viewModel.validator = $("#Details").kendoValidator().data("kendoValidator")({
rules: {
checkPersonContactInfo: function (input) {
return !(intakeView.viewModel.get("personDetails.Email") == '' && intakeView.viewModel.get("personDetails.CellPhone") == '' && intakeView.viewModel.get("personDetails.HomePhone") == '' && intakeView.viewModel.get("personDetails.WorkPhone") == '');
}
}
});
if (!window.data("kendoWindow")) {
window.kendoWindow({
width: "600px",
title: "Valdiation errors",
visible: false
});
}
});
我认为您正在尝试执行以下操作:
viewModel.validator = $("#Details").kendoValidator({//this is the change you need
rules: {
checkPersonContactInfo: function (input) {
if (intakeView.viewModel.get("personDetails.Email") == '' && intakeView.viewModel.get("personDetails.CellPhone") == '' && intakeView.viewModel.get("personDetails.HomePhone") == '' && intakeView.viewModel.get("personDetails.WorkPhone") == '') {
return false;
}
else {
return true;
}
}
},
});
更多: 看到这个
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.