使用绑定事件“input propertychange”防止在 TextArea 上写入

Posted

技术标签:

【中文标题】使用绑定事件“input propertychange”防止在 TextArea 上写入【英文标题】:Prevent From Writing on TextArea using Bind Event "input propertychange" 【发布时间】:2014-09-11 19:46:40 【问题描述】:

我正在使用将函数绑定到事件“input propertychange”来处理文本区域内的内容

像这样:

$('#textarea').bind('input propertychange', function ()     
    var textarea = document.getElementById('textarea');    
    window.lastLineWriting = textarea.value.substr(0, textarea.value.length).split("\n").length;                    
    var writingOnLine = textarea.value.substr(0, textarea.selectionStart).split("\n").length;                  
    if (writingOnLine < window.lastLineWriting) 
        //dont write on textarea
    
);

我不知道如何防止用户键盘输入的字符出现在 textarea 上...如果我想阻止在 textarea 上插入文本... 我该怎么做?

【问题讨论】:

你想在文本区域打印什么? 什么意思?在 If () 里面我想禁用要在 textarea 上插入的文本 【参考方案1】:

您可以使用 jQuery 轻松阻止用户输入此代码:

$('textarea').bind('keypress', function (e) 
    e.preventDefault();
    return false;
);

注意:

此代码将阻止用户输入所有文本区域,要将其专门绑定到一个或一些选定元素,您必须将选择器更改为所需的元素。

【讨论】:

你是我的救星 :D 非常感谢!解决了! 顺便问一下,如何更改绑定到事件按键的函数内的 textarea 的文本?我正在使用这样的东西: textarea.value = textarea.value + "testing..";但它不起作用,textarea 不会更改文本 您必须使用$(this).val($(this).val()+'testing...');,但前提是您在按键功能中使用它。 好吧,我是这样使用的: var textarea = document.getElementById('textarea'); textarea.value = textarea.value + "\nCommand>";现在开始工作了:D 谢谢!【参考方案2】:
 var editable = false // Your Condition
    if(editable != "true")
        $("#textarea" ).attr("disabled",true);
         

【讨论】:

以上是关于使用绑定事件“input propertychange”防止在 TextArea 上写入的主要内容,如果未能解决你的问题,请参考以下文章

事件绑定的快捷方式 利on进行事件绑定的几种情况

JQjq动态绑定事件.on()解绑事件off()

使用 DataBinding 库绑定事件

使用 jQuery 访问绑定到事件处理程序的函数

JavaScript中事件的绑定

关于高级事件的使用