كيفية الحصول على قيمة المحتوى الذي يتم إخفاءه أو المولد تلقائيًا؟
-
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;