diff options
-rw-r--r-- | actionpack/CHANGELOG | 2 | ||||
-rw-r--r-- | actionpack/lib/action_view/helpers/javascript_helper.rb | 6 | ||||
-rw-r--r-- | actionpack/test/template/javascript_helper_test.rb | 4 |
3 files changed, 11 insertions, 1 deletions
diff --git a/actionpack/CHANGELOG b/actionpack/CHANGELOG index 1fa70c32ae..33eb676c25 100644 --- a/actionpack/CHANGELOG +++ b/actionpack/CHANGELOG @@ -1,5 +1,7 @@ *SVN* +* Added that JavaScriptHelper#link_to_function will honor existing :onclick definitions when adding the function call [DHH] + * Added :disable_with option to FormTagHelper#submit_tag to allow for easily disabled submit buttons with different text [DHH] * Make auto_link handle nil by returning quickly if blank? [Scott Barron] diff --git a/actionpack/lib/action_view/helpers/javascript_helper.rb b/actionpack/lib/action_view/helpers/javascript_helper.rb index 033aff5044..7dccecda13 100644 --- a/actionpack/lib/action_view/helpers/javascript_helper.rb +++ b/actionpack/lib/action_view/helpers/javascript_helper.rb @@ -48,9 +48,13 @@ module ActionView # link_to_function "Greeting", "alert('Hello world!')" # link_to_function(image_tag("delete"), "if confirm('Really?'){ do_delete(); }") def link_to_function(name, function, html_options = {}) + html_options.symbolize_keys! content_tag( "a", name, - {:href => "#", :onclick => "#{function}; return false;"}.merge(html_options.symbolize_keys) + html_options.merge({ + :href => html_options[:href] || "#", + :onclick => "#{function};#{html_options[:onclick] ? " #{html_options[:onclick]};" : ""} return false;" + }) ) end diff --git a/actionpack/test/template/javascript_helper_test.rb b/actionpack/test/template/javascript_helper_test.rb index 48d1e263c1..6a01bd14b2 100644 --- a/actionpack/test/template/javascript_helper_test.rb +++ b/actionpack/test/template/javascript_helper_test.rb @@ -26,4 +26,8 @@ class JavaScriptHelperTest < Test::Unit::TestCase link_to_function("Greeting", "alert('Hello world!')") end + def test_link_to_function_with_existing_onclick + assert_dom_equal %(<a href="#" onclick="alert('Hello world!'); confirm('Sanity!'); return false;">Greeting</a>), + link_to_function("Greeting", "alert('Hello world!')", :onclick => "confirm('Sanity!')") + end end |