[英]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.