Подтвердить что ты не робот

Как запретить пользователю вставлять текст в текстовое поле?

У меня есть эта функция JS, которая запрещает пользователю вводить символы

<script type="text/javascript">
function validate(evt) {
  var theEvent = evt || window.event;
  var key = theEvent.keyCode || theEvent.which;
  key = String.fromCharCode(key);
  var regex = /[0-9]|\./;
  if(!regex.test(key)) {
    theEvent.returnValue = false;
    if(theEvent.preventDefault) theEvent.preventDefault();
  }
}
</script>

<span>Radio Receive:</span>
<input name="ReceiveNo" type="text" class="txtbox" onkeypress='validate(event)' maxlength="11" value="${cpCon.receiveNo}" required tabindex="34" />

Но я заметил, что когда пользователь попытался вставить слово из этого текстового поля, текст можно ввести. Как я могу предотвратить это, не отключая вставку?

4b9b3361

Ответ 1

Очень простое решение:

<input name="ReceiveNo" type="text" class="txtbox" onkeypress='validate(event)' maxlength="11" value="${cpCon.receiveNo}" required tabindex="34" onCopy="return false" onDrag="return false" onDrop="return false" onPaste="return false" autocomplete=off />

Это сработало для меня очень хорошо. В текстовое поле никто не может вставлять, используя правую кнопку вставки мыши или нажав ctrl + v с клавиатуры.

Ответ 2

//Отключить функциональность вставки

$(document).ready(function(){
  $('#txtInput').bind("paste",function(e) {
      e.preventDefault();
  });
});

//Ниже может быть полезно для вашей функциональности.

$(document).ready(function(){
  $('#txtInput').bind("paste",function(e) {
    validate(e);
  });
});

или

OnTabOut() или onblur() вы можете проверить введенный/вставленный текст вместо обработки функциональных возможностей вставки.

Ответ 3

Я пробовал это в моем проекте Angular, и он отлично работал без jQuery.

<input type='text' ng-paste='preventPaste($event)'>

И в разделе script:

$scope.preventPaste = function(e){
   e.preventDefault();
   return false;
};

В проекте non Angular используйте 'onPaste' вместо 'ng-paste' и 'event' вместо '$ event'.

Ответ 4

Если вам просто нужен не редактируемый kendoComboBox(), вы можете использовать kendoDropDownList().

В моем случае мне нужно было включить/отключить в зависимости от пользовательских привилегий, поэтому здесь появилось решение я (это предотвращает ввод ключей и вставки значений):

if (user.hasRight()) {

  var myinput = $("#myinput").data("kendoComboBox");
  myinput.input.on("keydown", function (e) { e.preventDefault(); });
  myinput.input.bind("paste", function (e) { e.preventDefault(); });

}

Вы можете протестировать его здесь

Ответ 5

JQuery

    $(this).click(function () {
    $(".txtbox").attr("disabled", "disabled"); 

  });

или css:

.txtbox{
 display: none;
 visibility: hidden;
 }

или атрибут html:

 set disabled="disabled";