这是正在发生的事情的一个基本示例。我可以理解,我可能会在定义之前在 body 中调用该函数,但是为什么将 javascript 放在页面底部如此普遍?我知道我的老板会说使用底部 javascript 那我该怎么办?
此外,根本问题是页面首次加载时,如果有来自服务器的用户名,我需要运行 CheckUsername() 函数。那么有没有更好的方法来有条件地做到这一点?
<body>
<input type="text" name="username"
id="username" onblur="CheckUsername()"
maxlength="30" value="@username" />
@if (username.length > 5)
{
<script>
CheckUsername(); // this is the one that's undefined
</script>
}
@section bottomjavascript
{
<script language="JavaScript">
function CheckUsername() {
// does work
}
</script>
}
</body>
实际的正文标签来自主布局。但是为什么我可以在输入标签中使用CheckUsername,却不能只在页面上调用呢?
我决定只删除@section底部javascript,这样它就不会在body标签下方移动任何脚本。这不是一个真正的解决方案,因为这个页面不再使用javascript的主部分,但它现在可以工作了