كان لدي حالة كان لدي فيها هذا النموذج:
وحاولت استرداد المعرف الخاص به باستخدام جافا سكريبت:
const form = document.getElementById("#hello") console.log(form.id)
ولكن أدى ذلك إلى إرجاع:
HTMLlement بدلاً من ذلك. وبالتالي، من أجل التخفيف من هذه المشكلة، استخدمت وظيفة getAttribute بدلاً من ذلك:
const form = document.getElementById("#hello") console.log(form.getAttribute('id'))
في البداية اعتقدت أن المثال يبدو أن المشكلة غير ذات صلة نوعًا ما. ولكن في حالتي كنت أقوم بتطوير مكتبة مساعدة تم تلقي HTMLElement كوسيطة:
function formEnable(form,enable,resetFeedback=true){ // checks whether for is an actual form are ommited for simplicity const formId = form.id const submitBtn = form.querySelector(`button[type="submit"]`)?? document.querySelector(`button[form="${formId}"][type="submit"]`) ?? document.querySelector(`button[form="${formId}"]`); if(!submitBtn){ throw Error("Unable to enable or disable form") } // Form Enabling Logic }
في حالتي استخدمت هذه الوظيفة لوضع منطق لتمكين النموذج ولأن الإدخال المخفي بمعرف الاسم كان كحقل إدخال في النموذج الخاص بي، فشل الزر في استرداده.
لذلك قمت بدلاً من ذلك بما يلي:
function formEnable(form,enable,resetFeedback=true){ // checks whether for is an actual form are ommited for simplicity const formId = form.getAttribute('id'); const submitBtn = form.querySelector(`button[type="submit"]`)?? document.querySelector(`button[form="${formId}"][type="submit"]`) ?? document.querySelector(`button[form="${formId}"]`); if(!submitBtn){ throw Error("Unable to enable or disable form") } // Form Enabling Logic }
التأكد من حصولي على سمة المعرف فيما يتعلق بالمدخلات وأسمائها الموجودة داخل النموذج الخاص بي.
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3