Первый вопрос программирования (из школ w3)
Пример программирования ниже (из школ W3) хорош и прост, он работает на их веб-сайте, но я действительно в чем-то растерялся.
onkeypress="return noNumbers(event)"
почему перед функцией происходит возврат? Что оно делает? Если вы знаете ответ на этот вопрос - как вы узнали эту информацию? Я полагаю, что она позволяет функции, нажатой на клавишу, продолжать обрабатывать нажатие клавиши, поскольку мое событие «прервало» ее?
также - Я пытался понять, что такое «событие». Это не похоже на ключевое слово. Я провел> час, пытаясь найти, что это такое. Кажется, он не назначен нигде в их примере кода. Обычно в этом месте вы увидите «это». Если это не назначенная переменная, она всегда будет передавать обработчик события? Confused ...
Что я хочу сделать с их функцией
Я хочу сделать проверку надежности пароля при вводе. Я смотрел на их пример, чтобы понять, как захватывать ключи (кросс-браузер и минимальный IE7). Моя идея была ...
<input type="password" name="pword" maxlength="50" size="50" id="field_pword" onkeyup="PasswordStrength(name, 8, 'relaxed')" onblur="CheckField(name, 8, 1)">
примечание: Да, я знаю, что лучше назначать обработчики событий вне HTML, но я не мог найти способ передачи переменных в него, если он не был встроенным. Я новичок, поэтому, возможно, я что-то упустил, но ... вот почему я делаю это в HTML.
также , ЭТО ПЛОХО, как я передаю имя? он посылает pword функции, но я что-то не так делаю? Должен ли я просто сделать его постоянной строкой? Это работает как есть, но иногда только потому, что что-то работает ... не значит, что это правильно. :)
onkeyup="PasswordStrength('pword', 8, 'relaxed')" onblur="CheckField('pword', 8, 1)">
Моя функция проверки полей работает (я использую ее после каждого поля), которую я недавно добавил в PasswordStrength. Мой вопрос ... моя новая функция не передает обработчик событий, так как я могу проверить, какая клавиша нажата? Могу ли я сделать это?
onkeyup="PasswordStrength(name, 8, 'relaxed', event)"
или стоит читать ...
onkeyup="return PasswordStrength(name, 8, 'relaxed', event)"
Если я не могу передать какое-либо «событие» таким образом, внутри моей функции я могу точно получить, какая клавиша была нажата, без большого беспорядка кода? Поскольку я учусь, мне нужно, чтобы примеры были максимально простыми (пожалуйста).
Используя мою функцию, я собирался сделать это таким образом, но я все еще не знаю, как получить, какая клавиша была нажата ...
function PasswordStrength(sField, iMinLength, sStrength, e?)
{
var form = document.forms[0];
var gc = form[sField].value;
// once I have the value I can do checking but it would be nice to have WHAT key
// was pressed
// the e? above is where I was thinking of passing the event
Пример W3 Я получил некоторые знания из ...
function noNumbers(e)
{
var keynum;
var keychar;
var numcheck;
if(window.event) // IE
{
keynum = e.keyCode;
}
else if(e.which) // Netscape/Firefox/Opera
{
keynum = e.which;
}
keychar = String.fromCharCode(keynum);
numcheck = /\d/;
return !numcheck.test(keychar);
}
</script>
<form>
Type some text (numbers not allowed):
<input type="text" onkeypress="return noNumbers(event)" />
</form>
</body>
</html>
Когда кто-то печатал, я собирался изменить текст, используя innerHTML рядом с полем пароля, чтобы сказать: «Слабый», «Хорошо», «Хороший», «Идеальный» или что-то в этом духе для статуса пароля. Я хотел бы сделать это так, как Google делает это с графикой слева от поля, но я не знаю, как это сделать просто. лол.
Мой путь исправим? У вас есть лучший способ сделать это, о котором я не знаю? Очень признателен. В ожидании вливания мудрости ...