使用 php 和 Javascript 的多个文本区域的最大长度

Max-Length for multiple text areas using php and Javascript

我正在尝试显示多个文本区域中剩余的字符数。虽然我的文本区域有不同的 ID,但最大长度仅提示第二个文本区域,而不是第一个。我的代码如下图

<textarea id="txtBox"></textarea> 
    <input type="text" id="counterBox"/>
        <script>
            var txtBoxRef = document.querySelector("#txtBox");
            var counterRef = document.querySelector("#counterBox");
            txtBoxRef.addEventListener("keydown",function(){
            var remLength = 0;
            remLength = 160 - parseInt(txtBoxRef.value.length);
            if(remLength < 0)
            {
                txtBoxRef.value = txtBoxRef.value.substring(0, 160);
                return false;
            }
            counterRef.value = remLength + " characters remaining...";
            },true);
        </script>

<textarea id="txtBox1"></textarea> 
    <input type="text" id="counterBox1"/>
            <script>
                var txtBoxRef = document.querySelector("#txtBox1");
                var counterRef = document.querySelector("#counterBox1");
                txtBoxRef.addEventListener("keydown",function(){
                var remLength = 0;
                remLength = 160 - parseInt(txtBoxRef.value.length);
                if(remLength < 0)
                {
                txtBoxRef.value = txtBoxRef.value.substring(0, 160);
                return false;
                }
                counterRef.value = remLength + " characters remaining...";
                },true);
            </script>

The result is as below (What I have):

What I want :

试试这个:

<textarea id="txtBox"></textarea>
<input type="text" id="counterBox"/>
<script>
    var txtBoxRef=document.querySelector("#txtBox");
    var counterRef=document.querySelector("#counterBox");
    txtBoxRef.addEventListener("keyup", function(){
        var remLength=0;
        remLength=160 - parseInt(txtBoxRef.value.length);
        if(remLength < 0){
            txtBoxRef.value=txtBoxRef.value.substring(0, 160);
            return false;
        }
        counterRef.value=remLength + " characters remaining...";
    }, true);
</script>
<textarea id="txtBox1"></textarea>
<input type="text" id="counterBox1"/>
<script>
    var txtBoxRef1=document.querySelector("#txtBox1");
    var counterRef1=document.querySelector("#counterBox1");
    txtBoxRef1.addEventListener("keyup", function(){
        var remLength=0;
        remLength=160 - parseInt(txtBoxRef1.value.length);
        if(remLength < 0){
            txtBoxRef1.value=txtBoxRef1.value.substring(0, 160);
            return false;
        }
        counterRef1.value=remLength + " characters remaining...";
    }, true);
</script>

Your code can be optimized if you give it a thought.

看起来变量 txtBoxRefcounterRef 在同一个范围内,你声明了两次。

<textarea id="txtBox"></textarea> 
    <input type="text" id="counterBox"/>
        <script>
            var txtBoxRef = document.querySelector("#txtBox");
            var counterRef = document.querySelector("#counterBox");
            txtBoxRef.addEventListener("keydown",function(){
            var remLength = 0;
            remLength = 160 - parseInt(txtBoxRef.value.length);
            if(remLength < 0)
            {
                txtBoxRef.value = txtBoxRef.value.substring(0, 160);
                return false;
            }
            counterRef.value = remLength + " characters remaining...";
            },true);
        </script>

<textarea id="txtBox1"></textarea> 
    <input type="text" id="counterBox1"/>
            <script>
                var txtBoxRef1 = document.querySelector("#txtBox1");
                var counterRef1 = document.querySelector("#counterBox1");
                txtBoxRef1.addEventListener("keydown",function(){
                var remLength = 0;
                remLength = 160 - parseInt(txtBoxRef1.value.length);
                if(remLength < 0)
                {
                txtBoxRef1.value = txtBoxRef1.value.substring(0, 160);
                return false;
                }
                counterRef1.value = remLength + " characters remaining...";
                },true);
            </script>

检查 Fiddle