繁体   English   中英

文本区域中的大写和小写

[英]upper case and lower case in text area

我有2个textareamaxlenghth25

<textarea row='5' cols='25' maxlength="200" name="address" id="text1"
          value="text1" onkeyup="MyFunction()"></textarea>
<br><br>
<textarea row='5' cols='25' maxlength="200" name="address1" id="text2"
          value="text2" onkeyup="MyFunction()"></textarea>

如果我在第一个textarea输入小写字符,则打印大写字符,反之亦然。但是,如果我在第二个textarea输入字符,则答案不在第一个textarea打印。 请帮忙。

function MyFunction() {
    var x1 = document.getElementById("text1").value;
    var x2 = document.getElementById("text2").value;
    var z = '';
    for (i = 0; i < x1.length; i++) {
        y = x1.charAt(i);
        if (y == y.toLowerCase()) {
            z = z + y.toUpperCase();
        } else {
            z = z + y.toLowerCase();
        }
    }
    document.getElementById("text2").value = z;
    var z1 = '';
    for (j = 0; j < x2.length; j++) {
        y1 = x2.charAt(j);
        if (y1 == y1.toLowerCase()) {
            z1 = z1 + y1.toUpperCase();
        } else {
            z1 = z1 + y1.toLowerCase();
        }
    }
    document.getElementById("text1").value = z1;
}

无论用户键入哪个文本区域,都可以调用相同的函数,并且该函数会更新两个文本区域的值。 具体来说,您的函数将采用第一个文本区域中键入的内容,将字母的大小写取反,然后将其写入第二个文本区域。 然后,它以相同的方式处理第二个文本区域,除了使用已经更新的值作为基础。

因此,当您在第二个文本区域中键入内容时,刚键入的内容将被覆盖,然后才能进行处理。

我尚不清楚您想要的行为是什么,但是我想您打算在任一文本区域中键入内容以更新另一个文本区域。 我想到的第一个方法是将您的函数分为以下两个部分:

function MyFunction1() {
    var x1 = document.getElementById("text1").value;
    var z = '';
    for (i = 0; i < x1.length; i++) {
        y = x1.charAt(i);
        if (y == y.toLowerCase()) {
            z = z + y.toUpperCase();
        } else {
            z = z + y.toLowerCase();
        }
    }
    document.getElementById("text2").value = z;
}
function MyFunction2(){
    var x2 = document.getElementById("text2").value;
    var z1 = '';
    for (j = 0; j < x2.length; j++) {
        y1 = x2.charAt(j);
        if (y1 == y1.toLowerCase()) {
            z1 = z1 + y1.toUpperCase();
        } else {
            z1 = z1 + y1.toLowerCase();
        }
    }
    document.getElementById("text1").value = z1;
}

然后从第一个文本区域调用一个新的MyFunction1() ,然后从第二个文本区域调用MyFunction2()

<textarea row='5' cols='25' maxlength="200" name="address" id="text1"
          value="text1" onkeyup="MyFunction1()"></textarea>
<br><br>
<textarea row='5' cols='25' maxlength="200" name="address1" id="text2"
          value="text2" onkeyup="MyFunction2()"></textarea>

演示: http//jsfiddle.net/Ntqq7/

您可以执行上述操作,也可以检查哪些textarea包含更多字符,而只需更新另一个字符

function MyFunction()   {
var x1=document.getElementById("text1").value; 
var x2=document.getElementById("text2").value; 
var z=''; 

if (x1.length > x2.length)
{
    for(i=0;i<x1.length;i++) 
    { 
        y=x1.charAt(i); 
        if(y==y.toLowerCase()) 
        { 
            z=z+y.toUpperCase();
        } 
        else 
        { 
            z=z+y.toLowerCase(); 
        } 
    } 
    document.getElementById("text2").value=z; 
}
else
{
    var z1=''; 
    for(j=0;j<x2.length;j++) 
    { 
        y1=x2.charAt(j); 
        if(y1==y1.toLowerCase()) 
        { 
            z1=z1+y1.toUpperCase(); 
        } 
        else 
        { 
            z1=z1+y1.toLowerCase(); 
        } 
    } 

    document.getElementById("text1").value=z1; 
}

}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM