diff --git a/src/renderers/dom/client/eventPlugins/ChangeEventPlugin.js b/src/renderers/dom/client/eventPlugins/ChangeEventPlugin.js index b0724a92b3..06fe96f026 100644 --- a/src/renderers/dom/client/eventPlugins/ChangeEventPlugin.js +++ b/src/renderers/dom/client/eventPlugins/ChangeEventPlugin.js @@ -362,6 +362,7 @@ var ChangeEventPlugin = { targetID, nativeEvent ); + event.type = 'change'; EventPropagators.accumulateTwoPhaseDispatches(event); return event; } diff --git a/src/renderers/dom/client/eventPlugins/__tests__/ChangeEventPlugin-test.js b/src/renderers/dom/client/eventPlugins/__tests__/ChangeEventPlugin-test.js new file mode 100644 index 0000000000..061d50440a --- /dev/null +++ b/src/renderers/dom/client/eventPlugins/__tests__/ChangeEventPlugin-test.js @@ -0,0 +1,44 @@ +/** + * Copyright 2013-2015, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @emails react-core + */ + +'use strict'; + +var mocks = require('mocks'); +var React = require('React'); + +describe('ChangeEventPlugin', function() { + var container; + + beforeEach(function() { + container = document.createElement('div'); + document.body.appendChild(container); + }); + + afterEach(function() { + React.unmountComponentAtNode(container); + document.body.removeChild(container); + }); + + it('should fire change for checkbox input', function() { + var called = 0; + + function cb(e) { + called = 1; + expect(e.type).toBe('change'); + } + + var input = React.render(, container); + console.log(input); + console.log(React.findDOMNode(input)); + React.findDOMNode(input).click(); + expect(called).toBe(1); + }); +});