【发布时间】:2015-12-01 22:44:26
【问题描述】:
我有一个 html 页面,其中有一个文本框(键入您的文本)和 TextArea 列表。我需要在文本框中输入内容,然后单击“添加”按钮,以便文本框中的任何内容都进入我的 TextArea 列表。我需要在文本框中输入以下格式。
Name=Value
用户将使用此文本框将名称值对快速添加到该文本框下方的列表中。假设我们在上面的文本框中输入Hello=World并点击添加,那么在下面的列表中,它应该显示为
Hello=World
如果我们再次在同一个文本框中输入ABC=PQR,那么在下面的列表中,它应该显示如下,这意味着它应该继续在其原始条目下方添加新的名称值对。
Hello=World
ABC=PQR
但是如果语法不正确,比如它不在 Name=Value 对中,那么它不应该向列表中添加任何内容,而是显示一个错误输入格式的弹出窗口。名称和值只能包含字母数字字符。我还有两个按钮Sort by name 和Sort by value。一旦我单击这两个按钮中的任何一个,它就会使用名称或值对 TextArea 列表中的条目进行排序。现在我上面的所有东西都可以正常工作,没有任何问题。
我添加了另一个名为Delete 的按钮。基本上,当按下Delete 按钮时,列表框中的所有选定项目都应被删除。如何添加此功能?我无法理解这一点。
这是我的jsfiddle。我需要使用纯 HTML 和 Javascript,我还不想使用任何库,因为我想保持简单,因为我还在学习。
下面是我的代码:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Test</title>
<style type="text/css">
#my-text-box {
font-size: 18px;
height: 1.5em;
width: 585px;
}
textarea{
width:585px;
height:300px;
}
.form-section{
overflow:hidden;
width:700px;
}
.fleft{float:left}
.fright{float:left; padding-left:15px;}
.fright button{display:block; margin-bottom:10px;}
</style>
<script language="javascript" type="text/javascript">
document.getElementById('add').onclick = addtext;
function addtext() {
var nameValue = document.getElementById('my-text-box').value;
if (/^([a-zA-Z0-9]+=[a-zA-Z0-9]+)$/.test(nameValue))
document.getElementById('output').textContent += nameValue + '\n';
else
alert('Incorrect Name Value pair format.');
}
document.getElementById('sortbykey').onclick = sortByKey;
function sortByKey() {
var textarea = document.getElementById("output");
textarea.value = textarea.value.split("\n").sort(function(a, b){
if(a != "" && b != ""){
return a.split('=')[0].localeCompare(b.split('=')[0])
} else {
return 0
}
}).join("\n");
}
document.getElementById('sortbyvalue').onclick = sortByValue;
function sortByValue() {
var textarea = document.getElementById("output");
textarea.value = textarea.value.split("\n").sort(function(a, b){
if(a != "" && b != ""){
return a.split('=')[1].localeCompare(b.split('=')[1])
} else {
return 0
}
}).join("\n");
}
</script>
</head>
<body>
<h3>Test</h3>
<label for="pair">Type your text</label></br>
<div class="form-section">
<div class="fleft">
<input type='text' id='my-text-box' value="Name=Value" />
</div>
<div class="fright">
<button id='add' type="button">Add</button>
</div>
</div>
</br>
</br>
</br>
<label for="pairs">Name/Value Pair List</label></br>
<div class="form-section">
<div class="fleft">
<textarea id='output'></textarea>
</div>
<div class="fright">
<button type="button" id='sortbykey' onclick='sortByKey()'>Sort by name</button>
<button type="button" id='sortbyvalue' onclick='sortByValue()'>Sort by value</button>
</div>
</div>
</body>
</html>
【问题讨论】:
-
看看this
标签: javascript html css