سؤال

أواجه مشكلة صغيرة مع JQuery: .submit() معرف في نموذج، عندما أقدم النموذج بالنقر فوق الزر "إرسال"، فإن المشغلات والأشياء التي تعمل بسلاسة، ومع ذلك، عندما استخدم document.forms[0].submit(), ، لا يتم تشغيل الحدث، لكن النموذج يقدم! لماذا هل هناك أي سبب؟ كيف يمكنني التغلب على ذلك؟

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

المحلول

هذه هي الطريقة التي يعمل بها - استدعاء الأصل .submit() لا يؤدي إلى معالج حدث جافا سكريبت.

استخدام jQuery. .submit() في حين أن:

$('form:first').submit();

نصائح أخرى

إذا تم تسمية نموذج إرسال مثل هذا

<form method="POST" id="the_waffle_form">

ثم يمكنك إرسالها عن طريق القيام بذلك.

$("#the_waffle_form").submit();

تفحص ال توثيق لمزيد من الأمثلة الكبيرة.

هناك بعض منا هنا أجبر على استخدام التعليمات البرمجية من الأنظمة القديمة. هذه النظم غير متوافقة، وفي حالتي في انتظار ترقيتها. ولكن عندما يستخدم عدة آلاف من الأشخاص النظام، فمن غير الممكن الدخول وتغيير التعليمات البرمجية إلى حزم أساسية. لذلك، نحن مجبرون على إيجاد حلول. في حالتي، لا تحتوي النماذج على معرفات أو أسماء، لذلك باستخدام document.forms[0].submit() هي واحدة من الخيارات الوحيدة.

هذا قد يبدو غريبا ولكن لماذا تستخدم حتى document.forms[0].submit() عند استخدام JQuery بالفعل.

بسيطة (ربما غبي؟) اقتراح: لا تستخدم document.forms[0].submit() استخدم هذا بدلا من ذلك

$("#hereidofyourform").submit()
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top