كيفية الحصول على قيمة المحتوى الذي يتم إخفاءه أو المولد تلقائيًا؟

StackOverflow https://stackoverflow.com/questions/3455961

  •  27-09-2019
  •  | 
  •  

سؤال

يأتي هذا السؤال بعد حل سؤالي الأخير, ، أرغب في الحصول على بعض القيم من النماذج المخفية ، لكن عندما أحاول استردادها فقط الأوتار الفارغة التي تأتي ، فكرت فقط في استخدام المصفوفات لتخزين المعلومات عند تقديمها ولكني أود معرفة ما إذا من الممكن فقط استرداده بعد ذلك وكيف.

أيضًا ، هناك جدول يتم إنشاؤه أثناء الطيران مع بعض 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;  

    }

بعد إنشائها ، حاولت الوصول إليها ولكن بدون حظ حتى الآن ، لا يمكنني الحصول على ما يدخله المستخدم في حقول الإدخال التي يتم إنشاؤها. كيف يمكنني أن أفعل هذا؟

أنا أستخدم JavaScript Raw مع jQuery ، لذا يتم الترحيب بالإجابات مع المكتبة أو بدونها :)

هل كانت مفيدة؟

المحلول

document.getElementById ("invoiceformat"). cb1 [3]. افترض أن "الفاتورة" هو معرف النموذج الخاص بك.) 1) في خاصية اسم النموذج الخاص بك لكل حقل لديك. بهذه الطريقة يمكنك الوصول إليهم مثل document.getElementById("invoiceFormat").fieldName.value

إذا كنت ستستخدم هذه الطريقة ، فتأكد من وضع النموذج الخاص بك في متغير محلي. سيكون أسرع بكثير

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

2) امنح كل حقل لديك معرف فريد واستخدم فقط getElementByID مباشرة على الحقول غير في النموذج. أنا لست مقاضاة إذا كانت هذه الطريقة أفضل ، لكنني أستخدم ثانية في كل وقت. أنا فقط اعتدت على ذلك على ما أعتقد.

3) هناك طريقة أخرى لكنها قد تكون مبالغة. عندما تقوم بإنشاء حقول النموذج الخاصة بك ، يمكنك وضعها في كائن (وليس القيم ولكن العناصر نفسها) وحتى إخفاءها في أ إنهاء. بهذه الطريقة يمكنك الاتصال بشيء مثل

formElements.formFieldOne.value;
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top