有没有一种方法可以在HTML文本域中添加项目符号?
我想要添加一个简单的功能,使每一行文本区域中都有一个项目符号(类似于列表项目符号)。
你不能这样做,但有另一种方法。删除文本区域:
<section id="textarea" contenteditable="true">
<ul>
<li>List item here</li>
<li>List item here</li>
<li>List item here</li>
<li>List item here</li>
</ul>
</section>
contenteditable
是一个很棒的功能!你可以将其应用于任何 DOM 元素。 - Gibolt我认为你不能在
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script>
$("#Projectone").focus(function () {
if (document.getElementById('Projectone').value === '') {
document.getElementById('Projectone').value += '• ';
}
});
$("#Projectone").keyup(function (event) {
var keycode = (event.keyCode ? event.keyCode : event.which);
if (keycode == '13') {
document.getElementById('Projectone').value += '• ';
}
var txtval = document.getElementById('Projectone').value;
if (txtval.substr(txtval.length - 1) == '\n') {
document.getElementById('Projectone').value = txtval.substring(0, txtval.length - 1);
}
});
// Second project
$("#Projecttwo").focus(function () {
if (document.getElementById('Projecttwo').value === '') {
document.getElementById('Projecttwo').value += '• ';
}
});
$("#Projecttwo").keyup(function (event) {
var keycode = (event.keyCode ? event.keyCode : event.which);
if (keycode == '13') {
document.getElementById('Projecttwo').value += '• ';
}
var txtval = document.getElementById('Projecttwo').value;
if (txtval.substr(txtval.length - 1) == '\n') {
document.getElementById('Projecttwo').value = txtval.substring(0, txtval.length - 1);
}
});
// Third project
$("#Projectthree").focus(function () {
if (document.getElementById('Projectthree').value === '') {
document.getElementById('Projectthree').value += '• ';
}
});
$("#Projectthree").keyup(function (event) {
var keycode = (event.keyCode ? event.keyCode : event.which);
if (keycode == '13') {
document.getElementById('Projectthree').value += '• ';
}
var txtval = document.getElementById('Projectthree').value;
if (txtval.substr(txtval.length - 1) == '\n') {
document.getElementById('Projectthree').value = txtval.substring(0, txtval.length - 1);
}
});
// Fourth project
$("#Projectfour").focus(function () {
if (document.getElementById('Projectfour').value === '') {
document.getElementById('Projectfour').value += '• ';
}
});
$("#Projectfour").keyup(function (event) {
var keycode = (event.keyCode ? event.keyCode : event.which);
if (keycode == '13') {
document.getElementById('Projectfour').value += '• ';
}
var txtval = document.getElementById('Projectfour').value;
if (txtval.substr(txtval.length - 1) == '\n') {
document.getElementById('Projectfour').value = txtval.substring(0, txtval.length - 1);
}
});
</script>
</body>
</html>
<head>
<script>
var CRLF = 10;
var BULLET = String.fromCharCode(45);
function Init() {
if (txt.addEventListener) txt.addEventListener("input", OnInput, false);
}
function OnInput(event) {
char = event.target.value.substr(-1).charCodeAt(0);
nowLen = txt.value.length;
if (nowLen > prevLen.value) {
if (char == CRLF) txt.value = txt.value + BULLET + " ";
if (nowLen == 1) txt.value = BULLET + " " + txt.value;
}
prevLen.value = nowLen;
}
</script>
</head>
<body onload="Init ();">
<h4>Automatic bullets in a text box</h4>
<textarea id="txt" rows="15" cols="40"></textarea>
<input type="hidden" id="prevLen" value="0"/>
</body>
对于其他遇到这个问题的人,这是我解决它的方法:
.text-area {
display: list-item;
margin-left : 1em;
outline: none;
}
.text-area div {
display: list-item;
}
<div class="text-area" contenteditable="true">
</div>
只需使用十六进制Unicode值:\u2022
(BULLET)。因此,您可以通过以下方式将项目符号添加到新行:
$textarea.val($textarea.val().replace(/\n/g,"\n\u2022").replace(/\r/g,"\r\u2022"))
使用以下字符 ● 来表示项目符号:
<textarea rows="6" cols="20">
● Item1
● Item2
● Item3
● Item4
● Item5
</textarea>