Как запретить вставлять текст в input
Есть какие нить соображения по этому поводу???
И лучше бы если они на jQuery :) |
qwermjk,
у input есть такой атрибут disabled. $("input").attr({ disabled: "disabled" }); |
Блин, меня не так поняли, моя ошибка, что бы нельзя было вставлять (ctrl+v)
|
Вроде должно работать
<head> <script type="text/javascript" src="http://yandex.st/jquery/1.4.2/jquery.min.js"></script> <script type="text/javascript"> $('input').live("keydown", function(e){ var e = e || event, k = e.which || e.button; if(e.ctrlKey && k == 86) return false; }); </script> </head> <body> <input type="text" > </body> |
k = e.which || e.button;
Что вот это значит?? остальное всё понял |
qwermjk, вот почитай...
|
|
А где узнать какая кнопка имеет какое значение??
|
qwermjk,
алерт =) |
У меня например в такой инпут всё вставляет с ctrl+v, opera 11.
|
Кстати, да, в опере 11 вставляет!
|
Vulkan,
да там ещё много недочётов, я просто привёл пример=) qwermjk, И с помощью правой кнопки мыши тоже вставляет. |
Skipp,
Достаточно для оперы добавить keypress <head> <script type="text/javascript" src="http://yandex.st/jquery/1.4.2/jquery.min.js"></script> <script type="text/javascript"> $('input').live("keydown keypress", function(e){ var e = e || event, k = e.which || e.button; if(e.ctrlKey && k == 86) return false; }); </script> </head> <body> <input type="text" > </body> |
Какие сложные танцы с
<input type="text" id="textField" value="какой-то текст" /><br /> <input type="button" value="Переключить (выкл/вкл) возможность редактирования поля" onclick="doDisable()" /> <script> function doDisable() { var textField = document.getElementById('textField'); textField.readOnly = ! textField.readOnly; }; </script> |
with-love-from-siberia
тсу надо только ctrl-v запретить |
Для оперы это точно не получится сделать, у них как бы политика...
|
da_ff, вы про какой пример? Два последних примера работают в Opera 11.
|
Vulkan,
я не про примеры, я про шаманские способы запрета вставки строк. Конечно же, самым корректным вариантом будет, запрет редактирования инпута, но если надо реализовать что-то вроде инпута, в котороый можно толко вручную ввести значение, не используя буфер обмена, то этого сделать нельзя, поскольку в опере по прежнему можно будет вставить через контекствое меню, если пользователь не разрешит вам заменить стандартное. Это я уже домыслил задачу в направлении "зачем это могло бы понадобиться если простой запрет редактирования не устраивает". |
Вроде должно работать
<head> <script type="text/javascript" src="http://yandex.st/jquery/1.4.2/jquery.min.js"></script> <script type="text/javascript"> $('input').live("keydown keypress", function(e){ var e = e || event, k = e.which || e.button; if(e.ctrlKey && k == 86) return false if(k == 2)return false }).bind("paste contextmenu", function(){return false}); </script> </head> <body> <input type="text" > </body> В примере будет работать вставка через контекстное меню, а если поставить к себе на страницу, то не будет. |
Проверял на локальном хосте, и не доконца робит, через меню вставляет и в опере и в мозилле.
|
Цитата:
|
Решатель шароввакуумных задач врывается в тред.)
<input type="text" maxlength="20" onkeydown="event.ctrlKey?maxLength=0:maxLength=20" onkeyup="maxLength=0"> //тест толь ff под linux, но по логике должно работать везде) |
Aetae, на onkeypress тоже повесь, а то в опере 11 твой вариант бесполезен.
|
Как же я ненавижу оперу.)
Всё равно нет под рукой чтоб протестить, так что исправь коль могёшь. |
кроме того, можно вставлять с нажатым shift через контекстное меню :)
|
Цитата:
|
Вот вам задачку то подкинул =))
Аж справится ни кто не может! |
понимаешь, qwermjk, твоя задача шаровакуумна чуть более чем на половину, пока не доказано обратное. А так как обратное пока не доказано, я над ней не думал ;)
|
<script type="text/javascript">
$(document).ready(function() { $("#Text1").bind('copy', function(e) { alert('copying text!'); }); $("#Text1").bind('paste', function(e) { alert('pasting text!'); }); $("#Text1").bind('cut', function(e) { alert('cut text!'); }); }); </script> |
А может кто-нибудь тут подсказать ответ?
http://javascript.ru/forum/showthread.php?p=296090 |
<script type="text/javascript">
$(document).ready(function() { $("#Text1").bind('copy', function() { return false;}); $("#Text1").bind('paste', function() { return false;}); $("#Text1").bind('cut', function() { return false;}); }); </script> чуть подправил SleepShadowWeb |
Часовой пояс GMT +3, время: 12:38. |