如何在文本框中添加文本区域的值?

时间:2015-09-05 21:20:08

标签: javascript html css html5

我有一个html页面,其中我有一个文本框(键入你的文本),我需要输入这样的文字:

Name=Value

用户可以使用此文本框快速将名称值对添加到该文本框下方的列表中。假设我们在上面的文本框中输入Hello=World并单击添加,然后在下面的列表中显示为

Hello=World

如果我们再次在同一文本框中输入ABC=PQR,那么在下面的列表中,它应该显示为这样,这意味着它应该继续在其原始条目下方添加新的名称值对。

Hello=World
ABC=PQR

但是如果语法不正确,就好像它不在Name = Value对中那么它不应该向列表中添加任何东西,而是显示弹出错误的输入格式。名称和值只能包含字母数字字符。

这是我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">
    function addtext() {
        var newtext = document.form-section.my-text-box.value;
        document.form-section.outputtext.value += newtext;
    }
    </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' name='my-text-box' value="Name=Value" />
        </div>
        <div class="fright">
            <button type="button" onClick="addtext();">Add</button>
        </div>
    </div>

    </br>
    </br>
    </br>

    <label for="pairs">Name/Value Pair List</label></br>
    <div class="form-section">
        <div class="fleft">
            <textarea name='outputtext'>After clicking add button, it should show Name Value pair here</textarea>
        </div>
        <div class="fright">
            <button type="button">Sort by name</button>
            <button type="button">Sort by value</button>
        </div>
    </div>

</body>
</html>

1 个答案:

答案 0 :(得分:1)

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('Bad value.');
}

JSFiddle