|
|
автор: feilx_ (10.04.2008 в 15:13) |
|
|
для: Антоха
(06.02.2008 в 22:11)
| | А как сделать, чтоб кнопка Send была неактивна до тех пор пока не повится правельный проль ? | |
|
|
|
|
|
|
|
для: Freddie_X
(06.02.2008 в 22:18)
| | Лучше тогда добавить проверку на использования вводимого логина. | |
|
|
|
|
|
|
|
для: Freddie_X
(06.02.2008 в 22:32)
| | Пожалуйста.
И радуйтесь, что это было не "оскопление" :-) | |
|
|
|
|
|
|
|
для: CNTv2.0
(06.02.2008 в 22:30)
| | Спасибо за оскобление :))))) | |
|
|
|
|
|
|
|
для: Freddie_X
(06.02.2008 в 22:18)
| | В Опере, как и вообще во всех популярных браузерах, можно отследить клавиатурный ввод (о чём я и написал ранее).
То, что где-то кто-то реализовал отслеживание клавиатурного ввода - я не сомневаюсь (ибо это просто).
Ведь недаром в песне поётся:
"Я другой такой страны не знаю
Где так много разных дураков..."
Если хотите присоединиться к их числу - я не возражаю:
<script>
function checkPass (x)
{
with (document)
if (x)
getElementById ('info').innerHTML = (getElementById ('pass').value != getElementById ('passch').value) ?
'Пароль повторен неверно!' : 'OK!';
else
if (getElementById ('passch').value.length >= getElementById ('pass').value.length)
getElementById ('info').innerHTML = (getElementById ('pass').value != getElementById ('passch').value) ?
'Пароль повторен неверно!' : 'OK!';
}
</script>
<form>
Password: <input type="password" id="pass"><br>
Repeat password: <input type="password" id="passch" onchange="checkPass (1)" onkeyup="checkPass (0)">
<b style="color: red" id="info"></b><br>
Field1: <input><br>
Field2: <input><br>
Field3: <input><br>
<input type="submit" value="Send">
</form>
|
А теперь попробуйте в любом браузере вставить повтор НЕВЕРНОГО ПАРОЛЯ (большего по количеству символов) мышкой из буфера.
Ну и?
Когда сработает?
Только тогда, когда фокус покинет этот инпут.
И спрашивается - "зачем платить больше?" :-) | |
|
|
|
|
|
|
|
для: CNTv2.0
(06.02.2008 в 22:16)
| | Ясно, спасибо за разъяснение!
Но я всё таки видел на некоторых сайтах такую фишку! И в Опере, например, она работала! | |
|
|
|
|
|
|
|
для: Freddie_X
(06.02.2008 в 21:48)
| | Я же вам написал, что это глупо, и что так никто не делает.
Вы, видимо, не поняли - почему это ГЛУПО?
Объясняю.
В поле <input type="password"> значение пароля можно ввести как с клавиатуры, вбивая по одному символу, так и ещё ТРЕМЯ способами (вставить из буфера с помощью мышки, вставить из буфера с помощью панели управления браузера, вставить из буфера с помощью клавиш Ctrl+V)
В Эксплорере есть аж два события - onpaste и onpropertychange - позволяющие отследить, что значение в <input> изменилось, а вот в прочих браузерах - НЕТ ТАКОЙ ВОЗМОЖНОСТИ.
Ну и как - мысль поняли?
Имеем 4 варианта ввода.
Имеем 5 популярных браузеров (Эксплорер, Мозилла, Опера, Сафари, Нетскейп).
Только в одном из браузеров можем отследить все 4 варианта ввода.
А в остальных 4-х браузерах можем отследить только один вариант ввода (клавиатурный).
Т.е. из 4*5 = 20 случаев сочетаний типа ввода и типа браузера работать правильно будет только в 8-и случаях, а в 12-ти остальных случаях браузеры никак не будут реагировать на скрипт.
Что-то делать при таких пропорциях (8 против 12) - глупо. | |
|
|
|
|
|
|
|
для: sim5
(06.02.2008 в 21:37)
| | Надо всего лишь заменить onchange, на onkeyup, и получите тот результат, который вам нужен, но в словах CNTv2.0 есть намек, что такие способы могут иногда не сработать.
Скорее всего вам нужно было вот так
<script>
function checkPass() {
with(document)
getElementById('info').innerHTML = (getElementById('pass').value != getElementById('passch').value) ? '' : 'OK!';
}
</script>
<form>
Password: <input type="password" id="pass"><br>
Repeat password: <input type="password" id="passch" onKeyUp="checkPass()">
<b style="color: red" id="info"></b><br>
Field1: <input><br>
Field2: <input><br>
Field3: <input><br>
<input type="submit" value="Send">
</form>
|
Проверял в ie, opere, firefox - работает | |
|
|
|
|
|
|
|
для: CNTv2.0
(06.02.2008 в 21:36)
| | Скрипт, работает, спасибо!
Но я хотел бы знать, можно ли такое сделать, но чтобы надпись "ОК" или "Не ОК" появлялась сразу, как только во втором поле сивмолов будет столько же, сколько и в первом?
Допустим, ввели в pass 5 символов, далее вводим символы в passch. Как только в passch есть 5 символов (без onchange) - проводится проверка и выдаётся сообщение "ОК" или "Не ОК". Или это не реализуемо с помощью ЯваСкрипта? | |
|
|
|
|
|
|
|
для: Freddie_X
(06.02.2008 в 21:17)
| | Если пароли равны, то значит и число символов одинаково, в тоже время при одинаковом числе символов, значение полей может быть не равно. Вывод текста во что? | |
|
|
|
|