سؤال

في بلدي FORM, لسبب ما، يمكنني الحصول على متغير الإدخال النموذجي عبر onsubmit ولكن لا تستخدم action.

هذا يعمل:

<form onsubmit="javascript:myFunc(this.city.value);">
    <p><input type="text" id="city-field" name="city" onfocus="this.select();" /> <input type="submit" value="Find" /></p>
</form>

هذا لا يعمل (this.city.value وجدت لتكون فارغة)

<form action="javascript:myFunc(this.city.value);">
    <p><input type="text" id="city-field" name="city" onfocus="this.select();" /> <input type="submit" value="Find" /></p>
</form>

هو السبب في أن onsubmit يمكن الحصول على this.city.value لكن ال action لا يستطيع الحدث؟

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

المحلول

علامة عمل النموذج لا يشير إلى أي شيء مع this

بدلا من ذلك، استخدم موقع مطلق

action="javascript:myFnc(document.getElementById('city-field').value)"

نصائح أخرى

تعديل: بفضل تعليق كريستوف، أدناه، أدركت الرقابة الضخمة. هنا الحل النهائي مع اقتراحه المنفذ.

<form action="" onsubmit="myFunc(this.city.value); return false;">
    <p><input type="text" id="city-field" name="city" onfocus="this.select();" /> <input type="submit" value="Find" /></p>
</form>

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

يتم استخدام نماذج HTML لتقديم البيانات مرة أخرى إلى البرنامج النصي على الخادم لمعالجة البيانات. عند إرسال النموذج، يتم تمرير البيانات الموجودة في حقول النموذج إلى الخادم في شكل أزواج قيمة الاسم. يتم استخدام البرامج النصية من جانب الخادم، والتي يمكن كتابةها في عدة لغات مختلفة، لمعالجة البيانات الواردة وإرجاع صفحة HTML جديدة إلى المتصفح. يمكن أن تكون الصفحة التي تم إرجاعها إلى المتصفح أي شيء من رسالة "شكرا لتسجيل" أو قائمة نتائج البحث التي تم إنشاؤها من استعلام قاعدة البيانات.

نظرا لأن النموذج هو إرسال البيانات إلى ملف آخر على الخادم. في العمل، يمكننا تحديد المسار الذي نحتاج إليه فقط لإرسال البيانات. لذلك لا يمكنك الحصول على القيم التي تواجه النموذج.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top