0

一切都完成了,公共汽车对我来说是小事大问题。

工作示例http://jsfiddle.net/auvi1/QSe4M/3/

正如您在示例中看到的那样,单击链接将值传递给 textarea 但是,我无法使用行计数脚本。如果我在文本区域内单击,它会计算行数,但这不是我想要它做的,我想要的是每当一个值输入到文本区域时它会自动增加计数框这有什么意义吗?

<script type='text/javascript'>
    window.onload = btnsInit;

    function btnsInit() {
        var i, a = document.getElementById('btns').getElementsByTagName('a');
        for (i = 0; i < a.length; ++i) {
            a[i].onclick = btnClick;
        }
    }

    function btnClick(e) {
        document.getElementById('myTextarea').value += '' + this.firstChild.nodeValue + '\n';
        xPreventDefault(e);
        trim();
        console.log("#myTextarea =", document.getElementById('myTextarea').value);
        return false;
    }

    function xPreventDefault(e) {
        if (e && e.preventDefault) e.preventDefault();
        else if (window.event) window.event.returnValue = false;
    }

    function cuentaRenglones(area) {
        var renglones = area.value.replace((new RegExp(".{" + area.cols + "}", "g")), "\n").split("\n");
        if (renglones[renglones.length - 1] == "") renglones.length--;
        area.form.contador.value = renglones.length;
    }
</script>
<div id='btns'>
    <form>
        <textarea rows="10" id='myTextarea' style="" name=" " onclick="cuentaRenglones(this)"></textarea>
        <br>Lines:
        <input type=text name="contador" size="2" value="0">
    </form>
    <a onclick='return false' href=' '>Link1</a>
    <a onclick='return false' href=' '>Link2</a>
    <a onclick='return false' href=' '>Link3</a>
    <a onclick='return false' href=' '>Link4</a>
</div>
4

1 回答 1

1

看这个:

http://jsfiddle.net/Eb4U7/

我已更改为 keyup 事件,但还添加了单击链接后计算行数的命令,否则它只会在您在文本区域中编辑某些内容时更新计数。

<script type='text/javascript'>
window.onload=btnsInit;
function btnsInit() {
    var i,a=document.getElementById('btns').getElementsByTagName('a');
    for(i=0;i < a.length;++i) {
        a[i].onclick=btnClick;
    }
}

function btnClick(e) {
    document.getElementById('myTextarea').value += '' + this.firstChild.nodeValue + '\n';
    xPreventDefault(e);
    cuentaRenglones(document.getElementById('myTextarea'));
    trim();
    console.log("#myTextarea =", document.getElementById('myTextarea').value);

    return false;
}

function xPreventDefault(e) {
    if(e && e.preventDefault)e.preventDefault();
    else if(window.event)window.event.returnValue=false;
}

function cuentaRenglones(area){
    var renglones = area.value.replace((new RegExp(".{"+area.cols+"}","g")),"\n").split("\n");
    if(renglones[renglones.length-1]=="") renglones.length--;
        area.form.contador.value = renglones.length;
}
</script>
<div id='btns'>
<form>
<textarea rows="10" id='myTextarea' style="" name=" "  onkeyup="cuentaRenglones(this)"></textarea>
<br>
Lines:
<input type=text name="contador" size="2" value="0">
</form>
<a  onclick='return false'href=' '>Link1</a>
<a  onclick='return false' href=' '>Link2</a>
<a  onclick='return false' href=' '>Link3</a>
<a  onclick='return false' href=' '>Link4</a>
</div>​
于 2012-08-01T22:17:30.877 回答