【发布时间】:2012-03-17 10:48:38
【问题描述】:
我有一个奇怪的问题,我一直在关注 Matt Blagden 的 youtube 教程,以学习 MVC3 .Net,到目前为止一切都很好,但在 13 分钟后的第 4 个视频中,他创建了以下javascript:
function getPasswordHash(passwordElement, nonceElement, hashElement)
{
var password = ('#' + passwordElement).attr('value');
var nonce = ('#' + nonceElement).attr('value');
$('#' + hashElement).attr('value', $sha256(password + nonce));
$('#' + passwordElement).attr('value', '');
}
我的 javascript/jquery 知识非常基础,但对我来说很有意义,问题是 java 脚本不会执行,并且 javascript 控制台不断给我以下错误:
"Uncaught TypeError: Object #password has no method 'attr' getPasswordHashLogin.js:3 (匿名功能)登录:43 点击”
这是我的视图代码:
@model string
@{
ViewBag.Title = "Login";
}
@section ExtraHeaders
{
<script type="text/javascript" src="@Url.Content("~/Scripts/Login.js")"></script>
<script type="text/javascript" src="@Url.Content("~/Scripts/SHA256.js")"></script>
}
<form action="@Href("~/Account/Login")" method="post" id="loginForm">
Name:
<input type="text" name="name" id="name" />
<br />
Password:
<input type="password" name="password" id="password" />
<input type="hidden" name="nonce" value="@Model" id="nonce" />
<input type="hidden" name="hash" value="hash" id="hash" />
<input type="button" name="submit" onclick="getPasswordHash('password', 'nonce', 'hash'); $('#loginForm').submit();"
value="Login" />
</form>
¿ 我做错了什么?,我不知道问题出在哪里,这真的让我很生气:@。
编辑
我将 .js 更改为以下内容:
function getPasswordHash(passwordElement, nonceElement, hashElement)
{
var password = ('#' + passwordElement).attr('value');
var nonce = ('#' + nonceElement).attr('value');
$('#' + hashElement).attr('value', $sha256(password + nonce));
$('#' + passwordElement).attr('value', '');
}
但是 Javascript 控制台给了我同样的错误。我在 js 控制台上进行了 forrowing 测试:
$('#password').text() “” $('#password').val() “123esda432” $('#password').attr('value') "123esda432"
这表明密码不仅有一个值,而且有一个 attr() 属性,但是一旦我单击提交按钮,我就会收到相同的错误“未捕获的类型错误:对象 #password 没有方法‘attr’ getPasswordHashLogin.js:3 (匿名功能)登录:45 点击”
¿ 发生了什么事? @_@.
【问题讨论】:
-
是的,我在 _Layout 视图上设置了以下代码:
@ViewBag.Title @RenderSection("ExtraHeaders", false);
标签: jquery asp.net-mvc-3