From c95aee2c03f7371ec126d287df194e22c535604a Mon Sep 17 00:00:00 2001 From: Josh Dean Date: Wed, 1 Oct 2014 09:38:54 -0500 Subject: [PATCH 1/2] Fixes #63 --- src/mouse.js | 5 ++--- test/qunit/mouse_test.js | 6 ++++-- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/src/mouse.js b/src/mouse.js index e42e399e..8ce6adf5 100644 --- a/src/mouse.js +++ b/src/mouse.js @@ -46,9 +46,8 @@ steal('./synthetic.js', function (Syn) { } //submit a form - if (!(Syn.support.clickSubmits) && (nodeName === "input" && - type === "submit") || - nodeName === 'button') { + if (!(Syn.support.clickSubmits) && ((nodeName == "input" || + nodeName == 'button') && type == "submit" ) ) { var form = Syn.closest(element, "form"); if (form) { diff --git a/test/qunit/mouse_test.js b/test/qunit/mouse_test.js index e9109527..e1c9967f 100644 --- a/test/qunit/mouse_test.js +++ b/test/qunit/mouse_test.js @@ -15,6 +15,7 @@ steal("src/synthetic.js", function (Syn) { "" + "click me" + "click me" + + "" + ""; }, @@ -57,10 +58,11 @@ steal("src/synthetic.js", function (Syn) { return false; }; st.bind(st.g("outer"), "submit", submitf); + Syn.trigger("click", {}, st.g("submitButton")); Syn.trigger("click", {}, st.g("submit")); Syn("submit", {}, "outer"); - equal(submit, 2, "Click on submit"); + equal(submit, 3, "Click on submit"); //make sure clicking the div does not submit the form var click = 0, @@ -75,7 +77,7 @@ steal("src/synthetic.js", function (Syn) { Syn.trigger("click", {}, st.g("submit")); - equal(submit, 2, "Submit prevented"); + equal(submit, 3, "Submit prevented"); equal(click, 1, "Clicked"); st.unbinder("outer", "submit", submitf); From 640449bf185347c3397164e4e550c6a1294062cb Mon Sep 17 00:00:00 2001 From: Josh Dean Date: Wed, 1 Oct 2014 09:53:01 -0500 Subject: [PATCH 2/2] Add test for clicking a button not causing form submit. --- src/mouse.js | 2 +- test/qunit/mouse_test.js | 20 ++++++++++++++++++++ 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/src/mouse.js b/src/mouse.js index 8ce6adf5..1df4af27 100644 --- a/src/mouse.js +++ b/src/mouse.js @@ -47,7 +47,7 @@ steal('./synthetic.js', function (Syn) { //submit a form if (!(Syn.support.clickSubmits) && ((nodeName == "input" || - nodeName == 'button') && type == "submit" ) ) { + nodeName == 'button') && type == "submit")) { var form = Syn.closest(element, "form"); if (form) { diff --git a/test/qunit/mouse_test.js b/test/qunit/mouse_test.js index e1c9967f..83ef7ce1 100644 --- a/test/qunit/mouse_test.js +++ b/test/qunit/mouse_test.js @@ -15,6 +15,7 @@ steal("src/synthetic.js", function (Syn) { "" + "click me" + "click me" + + "" + "" + ""; }, @@ -83,6 +84,25 @@ steal("src/synthetic.js", function (Syn) { st.unbinder("outer", "submit", submitf); st.unbinder("inner", "click", clickf); }); + + test("Click button[type=button] doesn't submit form", function() { + var submit = 0, + submitf = function (ev) { + submit++; + if (ev.preventDefault) { + ev.preventDefault(); + } + ev.returnValue = false; + return false; + }; + st.bind(st.g("outer"), "submit", submitf); + Syn.trigger("click", {}, st.g("button")); + + equal(submit, 0, "No submit called"); + + st.unbinder("outer", "submit", submitf); + }); + test("Click Checkboxes", function () { var checkbox = 0;