0

この質問は私の最後の質問を解決した後に来ます、私は隠されたフォームからいくつかの値を取得したいのですが、それらを取得しようとすると空の文字列だけが来ます、私はそれが導入されたときに情報を格納するために配列を使用することを検討しましたでも、後でそれを取得するだけでいいのか、どうやって取得できるのか知りたいです。

また、JavaScriptを使用してオンザフライで生成されるテーブルがあります。

function createTable(){
        if ( document.getElementById("invoiceFormat").rowNumber.value != ""){
            rows = document.getElementById("invoiceFormat").rowNumber.value;
        }

        var contents = "<table id='mt'><tr>";

        if ( document.getElementById("invoiceFormat").cb1[0].checked ){
            contents = contents + "<td class='htd'>Quantity</td>";
        }if (document.getElementById("invoiceFormat").cb1[1].checked ){ 
            contents = contents + "<td class='htd'>Description</td>";
        }if (document.getElementById("invoiceFormat").cb1[2].checked ){ 
            contents = contents + "<td class='htd'>Unitary Price</td>";
        }if (document.getElementById("invoiceFormat").cb1[3].checked ){ 
            contents = contents + "<td class='htd'>Subtotal</td>";
        }

        for (i=4; i<=k; i++){
            if (document.getElementById("invoiceFormat").cb1[i].checked ){
                contents = contents + "<td>" + document.getElementById("invoiceFormat").cb1[i].value + "</td>";
            }
        }


        contents = contents + "</tr>";

        for (j=1; j<=rows; j++){
            contents = contents + "<tr>";
            for (l=0; l<=k; l++){
                if (document.getElementById("invoiceFormat").cb1[l].checked ){
                hotfix = l +1;
                contents = contents + "<td> <input id='cell" + j + "_" + hotfix + "' name='cell' type='text' size='15' /> </td>";
                }
            }
            contents = contents + "</tr>";
        }

        contents = contents + "</table>";
        var createdTable = document.getElementById("mainTable");
        createdTable.innerHTML = contents;  

    }

作成後、アクセスしようとしましたが、これまでのところ運が悪かったため、作成された入力フィールドにユーザーが入力した内容を取得できませんでした。これどうやってするの?

私はjQueryで生のJavaScriptを使用しているので、ライブラリの有無にかかわらず回答を歓迎します:)

4

1 に答える 1

0

document.getElementById( "invoiceFormat")。cb1 [3] .checkedまず、ここで「.cb1 [3]」が何を意味するのかわからないので、無視して、この問題を解決する方法を説明します。 「invoiceFormat」はフォームのIDであると想定します。)1)フォームセット内のすべてのフィールドの名前プロパティ。そうすれば、次のようにそれらに到達できますdocument.getElementById("invoiceFormat").fieldName.value

このメソッドを使用する場合は、フォームをローカル変数に入れてください。それははるかに速くなります

var form = document.getElementById("invoiceFormat");
form.fieldName.value;

2)一意のIDを持つすべてのフィールドを指定し、フォームではなくフィールドで直接getElementByIdを使用します。この方法の方が良いかどうかはわかりませんが、常に2番目の方法を使用しています。私はそれに慣れていると思います。

3)もう1つの方法がありますが、それはやり過ぎかもしれません。フォームフィールドを作成するときは、それらをオブジェクト(値ではなく要素自体)に配置し、クロージャで非表示にすることもできます。そうすれば、次のようなものを呼び出すことができます

formElements.formFieldOne.value;
于 2010-08-11T07:46:04.703 に答える