Значение текстового поля пароля на jquery - PullRequest
0 голосов
/ 28 февраля 2012

У меня странная проблема, я следил за обучением на YouTube из Мэтт Благден в своем стремлении изучить MVC3 .Net, пока что все было хорошо, но на его 4 видео после 13мин, он создает следующий 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 не имеет метода 'attr' getPasswordHashLogin.js: 3 (анонимная функция) Логин: 43 onclick"

Это мой код просмотра:

@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:

$ ('# пароль'). text () "" $ ('# пароль'). val () "123esda432" $ ('# пароль').attr ('value') "123esda432"

Что показывает, что пароль не только имеет значение, но и свойство attr (), но как только я нажал кнопку отправки, я получил ту же ошибку "Uncaught TypeError: У объекта #password нет метода 'attr' getPasswordHashLogin.js: 3 (анонимная функция) Login: 45 onclick "

¿Что происходит?@ _ @.

1 Ответ

4 голосов
/ 28 февраля 2012

Вам не хватает префикса $.

var password = $('#' + passwordElement).attr('value');
var nonce = $('#' + nonceElement).attr('value');}

Кроме того, вам не нужно attr('value');

.val() должно работать так же хорошо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...