0

私はjavascript機能を持っています。その関数を使用して、テキスト フィールドで英語を別の言語に翻訳しています。以下のフォームのように、人が box01 に入力すると、box02 は入力された英語のコンテンツを翻訳モードで表示します。

 <form id="txtBox" action="ps.php" enctype="multipart/form-data" method="post">

 <textarea  id="box01" onkeyup="startText_sin();" onselect="startText_sin();" onclick="startText_sin();" rows="2" placeholder ="Type in Here"></textarea>

 <textarea  id="box02" rows="2" placeholder ="Translated"></textarea>

 </form>

しかし、私の単一ページにはこれらのフォームがほとんどなく、テキスト領域には以下のように異なる名前が付けられています。

 <textarea  id="txt_sin01"></textarea>
 <textarea  id="txt_trn02"></textarea>

これらすべてのテキスト領域で機能するように設定するにはどうすればよいですか?
私の機能は**startText_sin()**

関数では、このようなテキスト領域を選択しますtext = document.getElementById("box01");

どんな助けでも。

__ _ ___関数_ _ _ __ _ _

` //ここに配列が入ります

関数 startText_sin() {

var s,r,v;
//text = document.txtBox.box1.value;
text_singlish = document.getElementById("box1_singlish").value;
//special consonents
for (var i=0; i<specialConsonants.length; i++){
    text_singlish = text_singlish.replace(specialConsonants[i], specialConsonantsUni[i]);
}
//consonents + special Chars
for (var i=0; i<specialCharUni.length; i++){
    for (var j=0;j<consonants.length;j++){
        s = consonants[j] + specialChar[i];
        v = consonantsUni[j] + specialCharUni[i];
        r = new RegExp(s, "g");
        text_singlish = text_singlish.replace(r, v);
    }
}
//consonants + Rakaransha + vowel modifiers
for (var j=0;j<consonants.length;j++){
    for (var i=0;i<vowels.length;i++){
        s = consonants[j] + "r" + vowels[i];
        v = consonantsUni[j] + "්‍ර" + vowelModifiersUni[i];
        r = new RegExp(s, "g");
        text_singlish = text_singlish.replace(r, v);
    }
    s = consonants[j] + "r";
    v = consonantsUni[j] + "්‍ර";
    r = new RegExp(s, "g");
    text_singlish = text_singlish.replace(r, v);
}
//consonents + vowel modifiers
for (var i=0;i<consonants.length;i++){
    for (var j=0;j<nVowels;j++){ 
        s = consonants[i]+vowels[j];
        v = consonantsUni[i] + vowelModifiersUni[j];
        r = new RegExp(s, "g");
        text_singlish = text_singlish.replace(r, v);
    }
}

//consonents + HAL
for (var i=0; i<consonants.length; i++){
    r = new RegExp(consonants[i], "g");
    text_singlish = text_singlish.replace(r, consonantsUni[i]+"්");
}

//vowels
for (var i=0; i<vowels.length; i++){
    r = new RegExp(vowels[i], "g");
    text_singlish = text_singlish.replace(r, vowelsUni[i]);
}

document.getElementById("box2_singlish").value=text_singlish; //wirte on page in sihala

}

`

4

1 に答える 1

1

テキストエリアのIDを関数に渡します

var startText_sin = function (textId) {
    text = document.getElementById(textId);
    // do stuff
};

そして呼び出し:

startText_sin("box01");

インラインで実行する例:

<textarea  id="box01" onkeyup="startText_sin("box01");" onselect="startText_sin("box01");" onclick="startText_sin("box01");" rows="2" placeholder ="Type in Here"></textarea>

ただし、これはソフトウェアを作成するための恐ろしい方法だと言わざるを得ません。個々の要素ごとに onselect と onclick を使用するのではなく、ページ上のイベントを監視して処理できます。これはあなたがいる場所ではなく、将来のことであり、これを読んでいる人にとっては理解しています. これよりも複雑なものを書いている場合は、これらのメソッドを使用すべきではありません。

于 2013-11-02T14:28:03.903 に答える