试图阻止输入textarea

时间:2017-10-31 22:56:09

标签: javascript jquery

我正在尝试使用Javascript阻止用户输入textarea。

为什么这不起作用?

$("textarea").on("input", function (e) {
  console.log("returning"); //This prints
  e.preventDefault();
  return false;
  //Even though this code runs when text is inputed into the textarea, it still doesn't prevent user input. Shouldn't returning false do that?
});

3 个答案:

答案 0 :(得分:1)

您正在阻止非可移动事件的默认操作,而不是输入。您需要禁用输入以获得所需的结果,以编程方式禁用输入:

$("textarea").prop("disabled", (1 === 2)/*some condition*/);

答案 1 :(得分:0)

  

Input Event :当<input><select><textarea>元素的值发生更改时,会同步触发DOM输入事件。

为此目的使用keydown代替input

$('textarea').keydown(function(e) {
  console.log("returning"); //This prints
  e.preventDefault();
  return false;
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<textarea></textarea>

答案 2 :(得分:0)

如果你真的不希望光标出现在你的元素上,那么你根本不应该使用textarea或输入,但如果你必须,你可以这样做:

<textarea readonly='readonly'></textarea>

$('textarea').attr('readonly', 'readonly');