сделать переменную javascript видимой во всем скрипте - PullRequest
0 голосов
/ 05 января 2012

Я получил это

$('#password').change(function() {
    var toSha1 = $('#msisdn').val() + $('#password').val();
    var authCode = $.sha1(toSha1);
});

Как сделать так, чтобы переменная authCode была видимой во всем сценарии. Например, для правильной работы:

  $('#password').change(function() {
    var toSha1 = $('#msisdn').val() + $('#password').val();
    var authCode = $.sha1(toSha1);
});
 alert(authCode);

Я пытался определить его без ключевого слова "var", но, похоже, это не сработало.

Отредактировано: вот источник

<div data-role="content">
    <textarea id='resultArea'></textarea>
    <label for='msisdn'>MSISDN:</label>
    <input type='text' id='msisdn' value='+359899888777'>
    <label for='authCode'>authCode:</label>
    <input type='text' id='authCode' value='8bcac5dabf06219843a5a3b755c47e69600e050a'>
    <label for='password'>Password:</label>
    <input type='password' id='password' value='123'>
    <button data-role='button' data-inline='true' data-theme='e' id='register'>Register</button>
    <button data-role='button' data-inline='true' data-theme='e' id='login'>Login</button>
</div><!-- /content -->
<script>
$('#resultArea').hide();
$('#password').change(function() {
    var toSha1 = $('#msisdn').val() + $('#password').val();
    window.authCode = $.sha1(toSha1);
});
alert(window.authCode);
</script>

Ответы [ 2 ]

3 голосов
/ 05 января 2012

Чтобы сделать его глобальным явно:

window.authCode = $.sha1(toSha1);

Глобальные переменные - это свойства объекта window.

Обратите внимание, что с вашим кодом есть отдельная проблема: вы 'оповещать о значении authCode сразу после подключения обработчика, а не при возникновении события change.Смотрите комментарии:

$('#resultArea').hide();               // Happens immediately
$('#password').change(function() {     // change() call happens immediately, setting up the handler
    // ...but this code runs when the handler is *called*, not inline with the code above and below
    var toSha1 = $('#msisdn').val() + $('#password').val();
    window.authCode = $.sha1(toSha1);
});
alert(window.authCode);                // Happens immediately after the calls above
1 голос
/ 05 января 2012

изменение:

var authCode = $.sha1(toSha1);

до

window.authCode = $.sha1(toSha1);

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