【问题标题】:Trying to prevent input into textarea试图阻止输入到 textarea
【发布时间】:2017-10-31 22:56:08
【问题描述】:

我试图阻止用户使用 Javascript 输入文本区域。

为什么这不起作用?

$("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?
});

【问题讨论】:

标签: javascript jquery


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

    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>

    【讨论】:

    • 这不回答你吗 OP @Wyatt ?!
    【解决方案3】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-08-28
      • 2011-09-11
      • 1970-01-01
      • 1970-01-01
      • 2020-07-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多