Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript单击计数并提交到文本区域_Javascript_Click_Counter - Fatal编程技术网

Javascript单击计数并提交到文本区域

Javascript单击计数并提交到文本区域,javascript,click,counter,Javascript,Click,Counter,我对编码相当陌生,正在尝试学习制作一个Chrome插件,为网站添加一些功能。我一直在努力寻找这个问题的答案,并且已经搜索并提出了很多不同的选择,但我无法找到任何东西来创造我所追求的 我和我正在寻找的是一个脚本,它将允许我计算5个不同按钮的点击次数,然后通过“提交”按钮将它们发送到文本区域 [A] [B][C][D][E][send] 所以,如果我点击按钮A两次,C一次,E三次,然后点击“发送”,它会将它发送到我的文本区,它会读“计数A2 C1 E3”,并会忽略任何没有点击的内容。作为奖励,当文本

我对编码相当陌生,正在尝试学习制作一个Chrome插件,为网站添加一些功能。我一直在努力寻找这个问题的答案,并且已经搜索并提出了很多不同的选择,但我无法找到任何东西来创造我所追求的

我和我正在寻找的是一个脚本,它将允许我计算5个不同按钮的点击次数,然后通过“提交”按钮将它们发送到文本区域

[A] [B][C][D][E][send]

所以,如果我点击按钮A两次,C一次,E三次,然后点击“发送”,它会将它发送到我的文本区,它会读“计数A2 C1 E3”,并会忽略任何没有点击的内容。作为奖励,当文本发送到textarea时,它是否会自动提交

希望这是有意义的,我期待着任何帮助,我可能会得到

问候,,
Pazinga

尝试以下代码,它将帮助您:

<html>
<head>  

 <script>


  var A = 0;
    var B = 0;
    var C = 0;
    var D = 0;
    var E = 0;

    function increaseCounter(variable) {
        switch (variable) {
            case 'A':
                A++;
                break;
            case 'B':
                B++;
                break;
            case 'C':
                C++;
                break;
            case 'D':
                D++;
                break;
            case 'E':
                E++;
                break;
        }
    }


    function send() {

        var text='Counted ';
        if(A>0){
            text+=' A'+A;
        }
        if(B>0){
            text+=' B'+B;
        }
        if(C>0){
            text+=' C'+C;
        }
        if(D>0){
            text+=' D'+D;
        }
        if(E>0){
            text+=' E'+E;
        }
        document.getElementById('textarea').value =text;
    }
</script>
</head>
<body>
<textarea id="textarea"></textarea>

<button onclick="increaseCounter('A')">A</button>
<button onclick="increaseCounter('B')">B</button>
<button onclick="increaseCounter('C')">C</button>
<button onclick="increaseCounter('D')">D</button>
<button onclick="increaseCounter('E')">E</button>

<button onclick="send()">Send</button>
</body>
</html>

var A=0;
var B=0;
var C=0;
var D=0;
var E=0;
函数递增计数器(变量){
开关(可变){
案例“A”:
A++;
打破
案例“B”:
B++;
打破
案例“C”:
C++;
打破
案例“D”:
D++;
打破
案例“E”:
E++;
打破
}
}
函数send(){
var text='Counted';
如果(A>0){
文本+=‘A’+A;
}
如果(B>0){
文本+='B'+B;
}
如果(C>0){
text+='C'+C;
}
如果(D>0){
文本+='D'+D;
}
如果(E>0){
文本+='E'+E;
}
document.getElementById('textarea')。值=文本;
}
A.
B
C
D
E
发送

此代码更好,您可以有任意多个按钮

更新:修复密钥未排序的错误(例如:计数E3 C1 A2)


var list={};
函数递增计数器(变量){
如果(!列表[变量])
列表[变量]=1;
其他的
列表[变量]+;
}
函数send(){
var键=[];
对于(列表中的x)
按键([x,list[x]]);
keys.sort();
var s=“计数”,i;
对于(i=0;i
您可以在此处找到可能的解决方案:

您可以在方便的时候修改它

以下是使用的html:

<button type="button" id="a">A</button>
<button type="button" id="b">B</button>
<button type="button" id="c">C</button>
<button type="button" id="d">D</button>
<button type="button" id="e">E</button>
<textarea rows="5" cols="40" id="results">
</textarea>

编辑:这很好,但提供了另一种更通用的方法,这是小提琴

为什么要将它同时放在文本区域和提交中?如果你想让它保持可见,提交必须在后台进行。下次尝试提供一些代码,因为很难确切知道你的意思。我没有提交任何代码,因为老实说,我现在在编码方面很糟糕。我已经尝试学习了几天,并且正在尽可能多地学习,但显然我不太擅长编码,所以我寻求帮助,但没有试图表明我对编码有太多的理解,我正在使用这些答案中的信息来了解更多信息,并试图成为一名更好的编码员。我认为最好使用按钮的属性来计算点击次数。如果我两次单击按钮a,一次单击按钮C,三次单击按钮E,它将产生
计数的A2 B0 C1 D0 E3
,虽然它应该导致
计数A2 C1 E3
。为什么不使用数组或对象而不是5个明确声明的变量?如果开关有35个按钮,会发生什么?它太大了。我会用另一种方式看它,使用属性。看看-你不再需要dict(也不需要ID),这在你想不费吹灰之力地添加更多按钮时很重要。很好的解决方案,我只是想给出一个快速的方法,因为Pazinga没有提供任何代码,我们不应该只做一些完美的事情,因为他永远不会真正学会如何做。我将编辑我的答案,重定向到你的小提琴,因为它真的很好:)约翰森902,你创造了正是我所寻找的。非常感谢你的帮助!
<button type="button" id="a">A</button>
<button type="button" id="b">B</button>
<button type="button" id="c">C</button>
<button type="button" id="d">D</button>
<button type="button" id="e">E</button>
<textarea rows="5" cols="40" id="results">
</textarea>
var buttonClicked = {"a":0, "b":0, "c":0, "d":0, "e":0};

$("button").click(function() {
  $("#results").text('');
  var clickedId = $(this).attr('id');
  buttonClicked[clickedId] +=1
  displayCounter();
});

function displayCounter()
{

    for(var elem in buttonClicked)
    {
        if (buttonClicked[elem] != 0)
        {
            $("#results").append(elem + " clicked " + buttonClicked[elem] + "\n");
        }
    }
}