Один огромный совет: попробуйте инструменты отладки в вашем браузере (например, Консоль в Chrome). Это даст вам много информации.
Например, при запуске кода и нажатии кнопки «Создать» эта ошибка отображается в журнале консоли: «Uncaught ReferenceError: x не определено» *
Это имеет смысл, потому что в функции generate () вы используете x, но она там не определена. У вас также есть функция password (), но вы не используете / не вызываете ее.
Подумайте об этом так: функция часто получает вход, делает что-то с этим входом, а затем возвращает выход , Но функция будет запускаться только при вызове.
В вашем случае функция password () не получает входные данные, но генерирует случайную строку в качестве выходных.
Кому исправить ваш код, вам просто нужно вызвать функцию пароля (). Вы можете поместить результат в эту переменную 'x', если хотите (или в переменную с любым другим именем).
Ваша функция generate () будет выглядеть следующим образом:
function generate() {
var x = password();
document.getElementById("view").innerHTML = x;
}
Что же нам теперь делать? Мы устанавливаем переменную x на выход функции password () и затем отображаем ее как HTML для элемента с идентификатором 'view'.
Обратите внимание, что переменная x
также может быть названа anything
здесь.
Теперь давайте снова запустим код и снова проверим Chrome журнал консоли ... Новая ошибка: Uncaught TypeError: Math.Floor не является функцией
Ok Итак, мы делаем успехи. функция floor
на самом деле должна быть в нижнем регистре (этаж против пола). Итак, давайте изменим это. И снова запустите код ...
И он работает!
Но даже при том, что он работает, вы не возвращаете вывод в функции password () правильным образом. вы должны просто return retVal;
вместо return x = retVal;
В функции вы должны просто что-то вернуть, чтобы вывод можно было использовать или назначить переменной где-нибудь. Причина, по которой здесь также работает x = retVal, заключается в том, что он просто устанавливает x равным retVal, а затем возвращает x .. (вместо простого возврата retVal напрямую).
Надеюсь, вы понимаете, что я говорю. Я знаю, что трудно начать программирование, и требуется некоторое время, чтобы понять, как должны работать функции.
Вот полный код JS с исправлениями:
function password() {
var retVal = "";
var chars = "abcdefghijklmnopqrstuvwxyz1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ#@$&!?";
var length = 8;
for (var i = 0, n = chars.length; i < length; i++) {
retVal += chars.charAt(Math.floor(Math.random() * n));
}
return retVal;
}
function generate() {
var x = password();
document.getElementById("view").innerHTML = x;
}