كيفية إضافة حدث Onchange لتحديد العلامة في القضبان

StackOverflow https://stackoverflow.com/questions/979400

  •  13-09-2019
  •  | 
  •  

سؤال

كيف أضيف حدث onchange هنا؟

الإطار: القضبان
قاعدة البيانات: MySQL.

أنا ملء الخيارات من قاعدة البيانات وهذا جعلني استخدم options_from_collection_for_select

select_tag(:variable,options_from_collection_for_select(:all, :id, :name))
هل كانت مفيدة؟

المحلول

select_tag يأخذ options التجزئة كمعلمة نهائية، حيث يمكنك إضافة أي سمات HTML للتحديد. لذلك لإضافة onchange ينسب:

select_tag :variable, options_from_collection_for_select(:all, :id, :name), :onchange => 'your_onchange_handler()'

نصائح أخرى

جرب شيئا مثل:

:onchange => remote_function(:url => {:controller => 'controller', :action => 'action'})

للحصول على select_tag، أضف فقط:

{:onchange => "myHandler();" }

أيضا، إذا كان Onchange لا يعمل قد ترغب في المحاولة onChange مع عاصمة C.

أخيرا، تأكد من عدم الخلط بين SELECT_TAG مع نموذج محدد.

راجع إجابتي لسؤال مماثل، فقط فيما يتعلق بنموذج تحديد وليس SELECT_TAG

إضافة حدث Onchange إلى نموذج محدد

قد ترغب في إضافة onchange السمة مضمنة:

select_tag(:variable,options_from_collection_for_select(:all, :id, :name)), {:onchange => "(function(e){ e.target.value }).apply(this,arguments)"}

لحالتي، لست متأكدا من أين وضع الوظائف المسماة، أو أحيانا أجدها مملة لإنشاء وظيفة فقط لإنشاء علامة بسيطة. حتى الناس يميلون إلى كتابة وظيفة مضمنة.

لكن خط بسيط مثل {onchange: "e.target.value"} لن تعمل، لأنه لا توجد متغيرات (على سبيل المثال event) يعرف.

سيكون الحل وظيفة المنفذة الذاتية التي تقبل الحجج

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