Возможно ли иметь ввод HTML в форме, которая принимает только вставленный ввод?Ограничить ввод HTML, чтобы разрешить вставку
Как часть нашего процесса регистрации, конечный пользователь должен ввести маркер идентификации 20 символов в базовую форму ввода HTML. В идеале пользователь просто копирует/вставляет токен в соответствующее поле. Мы не хотим разрешать пользователю вводить это вручную, так как вполне вероятно, что они будут ошибочными буквами, и у нас нет надежных средств для проверки ввода.
Значок поступает из настольного программного обеспечения и должен быть вставлен в уже открытую веб-страницу (то есть где они загружают программное обеспечение). Таким образом, кликабельная ссылка не является жизнеспособным вариантом.
Есть ли способ сделать это, например. через Javascript? Благодарю.
Мое решение, адаптированное от ответа SimplePi в:
<html>
<body>
<script type="text/javascript">
function validate(evt) {
var theEvent = evt || window.event;
var key = theEvent.charCode || theEvent.which;
if(key >= 32 && (theEvent.ctrlKey === undefined || !theEvent.ctrlKey)) {
if(theEvent.preventDefault) theEvent.preventDefault();
else theEvent.returnValue = false;
}
}
</script>
<span>Textbox name</span> <br />
<input type="text" onkeypress='validate(event)' value=""/>
</body>
</html>
Это работает в некоторых, но не все браузеры. Firefox на Mac - единственный нарушитель, которого я нашел - firefox в общих отчетах ctrl-v
точно такой же, как v
, но на окнах член theEvent.ctrlKey
может различать два. Выполнение этого же на маке, по-видимому, потребует нажатия клавиш/вверх, чтобы проверить, нажата ли или нет cmd. Это выполнимо, но не включено в этот код, если кто-то хочет это использовать.
Я довольно уверен, что это возможно, НО это будет очень плохой пользовательский опыт. Большинство пользователей будут копировать/вставлять идентификатор токена в любом случае, поэтому зачем прикладывать дополнительные усилия для самых маленьких пользователей? – stackErr
Вам нужно будет разрешить вложение клавиш для клавиатуры (которые могут отличаться в зависимости от ОС) и вставки контекстного меню правой кнопки мыши. Кроме того, что мешает им вставить что-то совершенно иное, чем ваш знак? – ajp15243
Откуда они берут маркер? –