mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
submit_tag with confirmation and disable_with [#660 state:resolved]
Signed-off-by: Joshua Peek <josh@joshpeek.com>
This commit is contained in:
parent
45494580d9
commit
77f7d98e38
2 changed files with 11 additions and 4 deletions
|
@ -360,8 +360,8 @@ module ActionView
|
|||
end
|
||||
|
||||
if confirm = options.delete("confirm")
|
||||
options["onclick"] ||= ''
|
||||
options["onclick"] << "return #{confirm_javascript_function(confirm)};"
|
||||
options["onclick"] ||= 'return true;'
|
||||
options["onclick"] = "if (!#{confirm_javascript_function(confirm)}) return false; #{options['onclick']}"
|
||||
end
|
||||
|
||||
tag :input, { "type" => "submit", "name" => "commit", "value" => value }.update(options.stringify_keys)
|
||||
|
|
|
@ -266,11 +266,18 @@ class FormTagHelperTest < ActionView::TestCase
|
|||
|
||||
def test_submit_tag_with_confirmation
|
||||
assert_dom_equal(
|
||||
%(<input name='commit' type='submit' value='Save' onclick="return confirm('Are you sure?');"/>),
|
||||
%(<input name='commit' type='submit' value='Save' onclick="if (!confirm('Are you sure?')) return false; return true;"/>),
|
||||
submit_tag("Save", :confirm => "Are you sure?")
|
||||
)
|
||||
end
|
||||
|
||||
|
||||
def test_submit_tag_with_confirmation_and_with_disable_with
|
||||
assert_dom_equal(
|
||||
%(<input name="commit" type="submit" value="Save" onclick="if (!confirm('Are you sure?')) return false; if (window.hiddenCommit) { window.hiddenCommit.setAttribute('value', this.value); }else { hiddenCommit = this.cloneNode(false);hiddenCommit.setAttribute('type', 'hidden');this.form.appendChild(hiddenCommit); }this.setAttribute('originalValue', this.value);this.disabled = true;this.value='Saving...';result = (this.form.onsubmit ? (this.form.onsubmit() ? this.form.submit() : false) : this.form.submit());if (result == false) { this.value = this.getAttribute('originalValue');this.disabled = false; }return result;" />),
|
||||
submit_tag("Save", :disable_with => "Saving...", :confirm => "Are you sure?")
|
||||
)
|
||||
end
|
||||
|
||||
def test_image_submit_tag_with_confirmation
|
||||
assert_dom_equal(
|
||||
%(<input type="image" src="/images/save.gif" onclick="return confirm('Are you sure?');"/>),
|
||||
|
|
Loading…
Reference in a new issue