繁体   English   中英

如何使用 jQuery 和/或 JavaScript 创建文本区域?

[英]How to create a textarea with jQuery and/or JavaScript?

我需要使用 jQuery 和/或 JavaScript 创建一个文本区域。

我正在使用此代码( click here for preview ),但退格、回车、符号和小写字母不起作用。 为什么 ?:

<!DOCTYPE html>
<html>
    <head>
        <script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
        <meta charset=utf-8 />
        <title>TEST</title>
        <!--[if IE]>
        <script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
        <![endif]-->
        <script type="text/javascript">
        <!--
            $(document).keyup(function (event) {
                var keyCode = event.keyCode;
                $('#mytext').text(function (i, text) {
                    return text + String.fromCharCode(keyCode);
                });
            });
        // -->
        </script>
        <style>
            #cmd {
                position: relative; 
                font-family: courier;
                font-weight:bold;
                font-size: 14px;
                padding: 5px;
                overflow: hidden;
            }
            #mytext {
                float: left; 
                padding-left: 3px;
                white-space: pre;
            }
        </style>
    </head>
    <body>
        <div id="cmd">
            <br>
            <div id="mytext">hello </div>
        </div>
    </body>
</html>

为什么不让这些键调用一个函数来将 html 放在<div id="cmd"></div>之间

我找不到按键事件功能,但这应该给你一个想法

if (keycode==31) {
    $("#cmd").append("<br/>");
}

31 是输入代码。

看这里,他们在按键上讨论 jquery 函数:
jQuery Event Keypress:按下了哪个键?

写这种类型的代码输入键的例子这个工作正常

$(document).keyup(function(event) {
  var key = event.which;
  var text = $('#mytext');
      if (key === 13) {
        $(text).append("<br/>");
     } else {
       $(text).append( String.fromCharCode(keyCode));
     }
});

http://jsbin.com/obuya3/8/edit

对于 keydown 和 keyup 事件,您可以通过查看 event.keyCode 并或多或少地假装它是 ASCII 代码来识别最常用的键(字母、数字和其他一些键)。 然而,事实并非如此,许多 Javascript 手册说可以通过执行“String.fromCharCode(event.keyCode)”将其转换为字符是错误的。 在 keydown 和 keyup 事件上,键码不是字符码,这种转换会给许多键带来狂野的结果。 没有通用的可移植方式将键码转换为字符。 您几乎必须感知浏览器类型并以此为基础进行键映射。

来自http://unixpapa.com/js/key.html

为什么不使用带有一些样式的文本区域?

return text + String.fromCharCode(keyCode); 将一个字符串附加到另一个字符串。 退格键和其他控制键不附加字符串,它们会删除字符/移动插入符号。 在这种情况下,您应该自己处理这些 keyCode。 您还可以将内容指定为editable ,然后浏览器处理所有控制键(如所见即所得编辑器)。

参见:http: //jsbin.com/obuya3/4示例

我不是关于你的问题。

如果你想用jquery创建一个textarea,有很多方法。

$("#cmd").append("");

或者你想使用 DOM。

如果您使用 HTML5,则可以使用“contenteditable”属性。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM