الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

الأفضل استخدام form أو getElementById

بدأه kiooo96 في 1 أغسطس 2012 · 8 رد · 932 مشاهدة · في قسم البرمجة بــ Javascript
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاته

أيهم أفضل وأسهل (ولماذا) للوصول لعنصر معين (بافتراض العنصر اسمه karem):

1- عمل فورم به عناصر بحيث يكون الوصول للعنصر كالآتي:

document.form1.karem.value;

2- استخدام getElementById كالآتي:

document.getElementById("karem").value;

تم تعديل هذه المشاركة بواسطة kiooo96 في 1 أغسطس 2012 في 20:39

#2

أفضل: شخصياً سأفضل استخدام getElementById حتى لو تغير اسم الفورم لا أضطر إلى تغييره على طول الشفرة البرمجية.

أما من الناحية التقنية، فربما تفاصيل المرور على شجرة DOM تختلف من متصفح لآخر في طريقة الوصول، ولا علم لي بتفاصيل كثيرة عن هذه النقطة.

أسهل: الأمر عائد للمبرمج

هذا رأيي.

Do as I say, not as I do

We are Anonymous. We are Legion. We don't forgive. We don't forget

#3

شكراً على الإجابة،،،

طيب هل الـ getElementById تغنيني عن استخدام الفورم في الصفحة؟

أو لازم في كل الأحوال استخدام الفورم؟

#4

ماذا تقصد بـ "تغنيك"؟

إن كنت تقصد الوصول مباشرة إلى أي عنصر في DOM فطبعاً تستطيع ودون أن يكون لديك معرفة بالعناصر الـ parent لهذا العنصر (كما في الحالة الأولى التي طرحتها)

على فكرة هل قمت باختبار هذا على متصفح وأعطاك نتيجة:

document.form1.karem.value;

ما أعرفه أنه يجب أن يكون بالشكل:

document.forms.form1.karem.value;
1

Do as I say, not as I do

We are Anonymous. We are Legion. We don't forgive. We don't forget

#5

القصد بـ "تغنيك":

يعني هل ممكن أكتب الصفحة بدون أي form وأقتصر فقط على وضع id لكل عنصر طوال الشفرة البرمجية؟ (طالما أن الوصول للعنصر سهل باستخدام getElementById)

وللمعلومية جربت الكودين اللي في مشاركتك والنتيجة صحيحة لكلاهما.

والغريب أيضاً أن الكود التالي صحيح!

form1.karem.value;

وممكن سؤال صغير لو تسمحلي، بما أني مبتدئ في الـ JavaScript:

ما فائدة الـ form؟

تم تعديل هذه المشاركة بواسطة kiooo96 في 2 أغسطس 2012 في 14:00

#6
kiooo96 كتب:

يعني هل ممكن أكتب الصفحة بدون أي form وأقتصر فقط على وضع id لكل عنصر طوال الشفرة البرمجية؟ (طالما أن الوصول للعنصر سهل باستخدام getElementById)

طبعاً!

فالـ form ما هو إلا نموذج HTML له هدف محدد، راجع هذا: http://www.w3schools.com/html/html_forms.asp

فإن كانت الصفحة لا تحتاج لنموذج form و عناصر input(s) فلا تحتاج لاستخدام form، وأساساً فلا تستطيع الوصول لأي عنصر داخل forms.form1 ما لم يكن أحد أبناء form المعروفين (مثل input)

أما إن كان قصدك أن تبقي على input(s) بدون وسم form، فلا يمكنك ذلك (ليس بشكل حرفي، بالطبع يمكن ذلك شريطة استخدام Javascript لجلب القيم ومن ثم إرسالها بطرق أخرى)

kiooo96 كتب:

والغريب أيضاً أن الكود التالي صحيح!

form1.karem.value;

على أي متصفح؟

kiooo96 كتب:

وممكن سؤال صغير لو تسمحلي، بما أني مبتدئ في الـ JavaScript:

ما فائدة الـ form؟

الـ form أحد عناصر HTML وليست من أغراض Javascript.

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

1

Do as I say, not as I do

We are Anonymous. We are Legion. We don't forgive. We don't forget

#7

شكراً لمعلوماتك المهمة، أفدتني كثيراً بارك الله فيك.

وتجربة الكود أخي كانت على متصفحي الـ Chrome والـ Firefox بمحرر أكواد Notepad++ كما في الصورة:

0e3f464c62f203.jpg

#8

آه تمام.. الخطأ مني كنت قد كتبت <form id='...'> وهي يجب أن تكون <form name='...'>

لا عليك.

على فكرة أراك في الصورة قمت بعمل bookmark لبعض المواضيع

هناك نظام مفضّلة في المنتدى يمكنك استخدامه لتبقى مفضّلتك معك أينما ذهبت :)

انظر التدوينة التالية:

http://blog.arabteam2000.com/?p=286

Do as I say, not as I do

We are Anonymous. We are Legion. We don't forgive. We don't forget

#9

لا عليك أخي :) ، الله يستر علينا وعليكم في البرمجة هذه اللي لو حطيت نقطة بالغلط وقف البرنامج!!!

وبالنسبة للـ Bookmarks أنا قرأت التدوينة بس ما أقصد وضع تلك المواضيع في المفضلة،

هذه أسئلة سألتها في المنتدى، كل يوم أتابع الإجابات عليها إلى أن أكتفي، بدل الدخول بحسابي والبحث عن تلك المشاركات،

(ومنها هذا السؤال...)

عموماً شكراً جزيلاً على تعاونك، وبالفعل استفدت من معلوماتك القيمة.

تم تعديل هذه المشاركة بواسطة kiooo96 في 3 أغسطس 2012 في 02:14

مواضيع مشابهة