Javascript 错误日志说当我在单独的文件甚至同一个文件中定义函数时未定义函数
Javascript error log says function not defined when I have defined it in a separate file and even the same file
这是我能想到的最小最简单的开始,当然也有错误。我是 运行 .cshtml 页面。这是在同一个文件中具有功能的代码,只是分开几行:
@section head
{
<script>
function CheckPostalCode(form) {
if (form.postalcode.value.length < 5) {
alert("Please enter a Zip Code.");
form.postalcode.focus();
return false;
}
return (true);
}
</script>
}
现在在下面的网页中:
<form onsubmit="return CheckPostalCode(this)" method="post" action="/search/index.cshtml">
<input type="text" name="postalcode" id="postalcode" size="30" maxlength="5" required/>
<input type="submit" name="submit" value="go" />
</form>
我尝试使用的原始方法是有一个名为 checkFields.js 的单独文件,并将该文件包含在页面部分标题中:
<script type="text/javascript" src="/js/checkFields.js"></script>
网页代码相同的地方。任何人都可以帮助解释为什么即使脚本在同一个文件中也是未定义的。但我真的希望能够从另一个文件调用该函数。我看过很多教程都说,只要你包含它们,你就可以像平常一样调用函数。好吧,我想我做到了。
当查看页面源代码时,它只是上面带有 header 标记的表单
如果您使用@section head 从您的视图中包含一些原始 javascript,则您的 _Layout.cshtml 文件中需要一个 RenderSection("head", false) ("head"是自己定义的名字,可以改成其他名字),在<head></head>
部分,如:
<head>
//your other css link or js link here
@RenderSection("head", false)
</head>
如果您使用link,请尝试使用“~”
<script src="~/js/checkFields.js" type="text/javascript"></script>
或使用:
<script src='@Url.Content("~/js/checkFields.js")' type="text/javascript"></script>
这是我能想到的最小最简单的开始,当然也有错误。我是 运行 .cshtml 页面。这是在同一个文件中具有功能的代码,只是分开几行:
@section head
{
<script>
function CheckPostalCode(form) {
if (form.postalcode.value.length < 5) {
alert("Please enter a Zip Code.");
form.postalcode.focus();
return false;
}
return (true);
}
</script>
}
现在在下面的网页中:
<form onsubmit="return CheckPostalCode(this)" method="post" action="/search/index.cshtml">
<input type="text" name="postalcode" id="postalcode" size="30" maxlength="5" required/>
<input type="submit" name="submit" value="go" />
</form>
我尝试使用的原始方法是有一个名为 checkFields.js 的单独文件,并将该文件包含在页面部分标题中:
<script type="text/javascript" src="/js/checkFields.js"></script>
网页代码相同的地方。任何人都可以帮助解释为什么即使脚本在同一个文件中也是未定义的。但我真的希望能够从另一个文件调用该函数。我看过很多教程都说,只要你包含它们,你就可以像平常一样调用函数。好吧,我想我做到了。
当查看页面源代码时,它只是上面带有 header 标记的表单
如果您使用@section head 从您的视图中包含一些原始 javascript,则您的 _Layout.cshtml 文件中需要一个 RenderSection("head", false) ("head"是自己定义的名字,可以改成其他名字),在<head></head>
部分,如:
<head>
//your other css link or js link here
@RenderSection("head", false)
</head>
如果您使用link,请尝试使用“~”
<script src="~/js/checkFields.js" type="text/javascript"></script>
或使用:
<script src='@Url.Content("~/js/checkFields.js")' type="text/javascript"></script>