0

グリッド内のそれぞれの横にボタンがあるさまざまなテキスト フィールドがあります。ボタンをクリックすると、その横のテキスト フィールドに値が返されます。問題は、データを返すテキスト フィールドを認識させることです。私は現在、隠しフィールドに入れられた関数でパラメーターを渡すように設定しており、switchステートメントはそのフィールドをチェックして、データをどのフィールドに送り返すかを確認しています。

それは機能しますが、これをはるかに少ないコードで実行できるように思われ、静的にプログラムされていないもの (フォームに新しいフィールドを追加するときに switch ステートメントを手動で更新したくありません) . 簡単な答えがあることを願っています。私はプログラミングが初めてで、複雑なことは理解できません。

私が持っているものの簡単な例はこれです:

<form action="#" name="testForm">
    <input type="text" name="input1" size="20">
    <input type=button value="get data" onClick="populateField(1)"/>
    <br>
    <input type="text" name="input2" size="20">
    <input type=button value="get data" onClick="populateField(2)"/>
    <br>
    <input type="text" name="input3" size="20">
    <input type="button" value="get data" onClick="populateField(3)"/>
    <br>
    <input type="text" name="lineID" size=1 style="display:none"/>
</form>

<script>
    function populateField(input) {
        document.testForm.lineID.value = input;
        var element = document.getElementById("lineID");
        var lineID = element.value;
        switch (lineID) {
            case "1":
                document.testForm.input1.value = "some value";
                break;
            case "2":
                document.testForm.input2.value = "some value";
                break;
            case "3":
                document.testForm.input3.value = "some value";
            //etc
        }
    }
</script>

every の個別のケースの代わりに"document.testForm.input#.value"、変数を使用して を置き換えるにはどうすればよい"input#"ですか?

4

1 に答える 1

3

ブラケット表記を使用します。

document.testForm['input' + lineID].value
于 2013-03-11T04:36:38.313 に答える