كيفية إضافة حدث Onchange لتحديد العلامة في القضبان
-
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
السمة مضمنة:
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
) يعرف.
سيكون الحل وظيفة المنفذة الذاتية التي تقبل الحجج