اذهب إلى المحتوى

السؤال

نشر

السلام عليكم

الفورم دي عاوز أخد منها ال value اللي هيحددها ال user :

<form id="sizePicker">

  <input type="number" id="inputHeight" name="height" min="1" value="1"> Grid Width:

  <input type="number" id="inputWidth" name="width" min="1" value="1">

  <input type="submit">

</form>

دايما بيظهر لي ال default value

Recommended Posts

  • 0
نشر
بتاريخ 49 دقائق مضت قال معاذ قره محمد:

وعليكم السلام

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

نعم القيمة تتغير ولكن لايمكن الحصول عليها في متغير

مثلا:

const sub = document.querySelector("input[type='submit']");

function makeGrid() {

  const gridHeight = document.getElementById("inputHeight").value;

  console.log(gridHeight);

}

sub.addEventListener('click',makeGrid());

اذا غيرت القيمة في الinput لن تحصل إلا علي ال default value وهي 1

  • 0
نشر
بتاريخ 10 دقائق مضت قال Ahmed Soliman12:

نعم القيمة تتغير ولكن لايمكن الحصول عليها في متغير

مثلا:

const sub = document.querySelector("input[type='submit']");

function makeGrid() {

  const gridHeight = document.getElementById("inputHeight").value;

  console.log(gridHeight);

}

sub.addEventListener('click',makeGrid());

اذا غيرت القيمة في الinput لن تحصل إلا علي ال default value وهي 1

أخي كل ما عليك حذف الأقواس عند دالة makeGrid داخل الaddEventListener:

sub.addEventListener("click", makeGrid)

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

  • 0
نشر (معدل)
بتاريخ 14 دقائق مضت قال Ahmed Soliman12:

نعم القيمة تتغير ولكن لايمكن الحصول عليها في متغير

مثلا:

const sub = document.querySelector("input[type='submit']");

function makeGrid() {

  const gridHeight = document.getElementById("inputHeight").value;

  console.log(gridHeight);

}

sub.addEventListener('click',makeGrid());

اذا غيرت القيمة في الinput لن تحصل إلا علي ال default value وهي 1

إن الخطأ هو في التابع الذي تقوم بتمريره إلى ال addEventListener حيث أنك تقوم باستدعاء التابع و ليس القيام بتمرير اسمه فقط.

عليك فقط القيام بتمرير التابع.

أي أننا في هذه الطريقة نقوم بتمرير اسم التابع حتى يعرف ما الذي يجب تنفيذه عند حدوث ال event و هو يقوم بتنفيذ التابع عند حدوثه و بالتالي تكون القيمة المناسبة موجودة في مكون ال html.

بينما في حال استدعينا التابع فوراً فسيأخذ القيمة الافتراضية تلقائياً و لن يقوم بتحديث شيء.

تم التعديل في بواسطة Kais Hasan
  • 0
نشر
بتاريخ 25 دقائق مضت قال Kais Hasan:

إن الخطأ هو في التابع الذي تقوم بتمريره إلى ال addEventListener حيث أنك تقوم باستدعاء التابع و ليس القيام بتمرير اسمه فقط.

عليك فقط القيام بتمرير التابع.

هذا حل المشكلة ولكن الرقم يظهر ويختفي في ال console

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...