Commit 6bfbec4f098b569f8da5a670e47e23f27f41e9d2
1 parent
37694d23
Exists in
master
and in
1 other branch
Make labels for nested radio buttons clickable
Showing
3 changed files
with
13 additions
and
4 deletions
Show diff stats
app/helpers/form_helper.rb
app/views/apps/_fields.html.haml
| ... | ... | @@ -14,9 +14,9 @@ |
| 14 | 14 | %div.watcher.nested |
| 15 | 15 | %div.choose |
| 16 | 16 | = w.radio_button :watcher_type, :user |
| 17 | - = label_tag :watcher_type_user, 'User' | |
| 17 | + = label_tag :watcher_type_user, 'User', :for => label_for_attr(w, 'watcher_type_user') | |
| 18 | 18 | = w.radio_button :watcher_type, :email |
| 19 | - = label_tag :watcher_type_email, 'Email Address' | |
| 19 | + = label_tag :watcher_type_email, 'Email Address', :for => label_for_attr(w, 'watcher_type_email') | |
| 20 | 20 | %div.user{:class => w.object.email.blank? ? 'choosen' : nil} |
| 21 | 21 | = w.select :user_id, User.all.map{|u| [u.name,u.id.to_s]}, :include_blank => '-- Select a User --' |
| 22 | 22 | %div.email{:class => w.object.email.present? ? 'choosen' : nil} | ... | ... |
public/javascripts/form.js
| ... | ... | @@ -30,15 +30,20 @@ function makeNestedItemsDestroyable(wrapper) { |
| 30 | 30 | function appendNestedItem() { |
| 31 | 31 | var addLink = $(this); |
| 32 | 32 | var nestedItem = addLink.parent().find('.nested').first().clone().show(); |
| 33 | + var timestamp = new Date(); | |
| 34 | + timestamp = timestamp.valueOf(); | |
| 35 | + | |
| 33 | 36 | nestedItem.find('input, select').each(function(){ |
| 34 | 37 | var input = $(this); |
| 35 | - var timestamp = new Date(); | |
| 36 | - timestamp = timestamp.valueOf(); | |
| 37 | 38 | input.attr('id', input.attr('id').replace(/([_\[])\d+([\]_])/,'$1'+timestamp+'$2')); |
| 38 | 39 | input.attr('name', input.attr('name').replace(/([_\[])\d+([\]_])/,'$1'+timestamp+'$2')); |
| 39 | 40 | if(input.attr('type') != 'radio') |
| 40 | 41 | input.val(''); |
| 41 | 42 | }); |
| 43 | + nestedItem.find('label').each(function(){ | |
| 44 | + var label = $(this); | |
| 45 | + label.attr('for', label.attr('for').replace(/([_\[])\d+([\]_])/,'$1'+timestamp+'$2')); | |
| 46 | + }); | |
| 42 | 47 | addLink.before(nestedItem); |
| 43 | 48 | } |
| 44 | 49 | ... | ... |