Skip to content

Commit c34b670

Browse files
committed
Fix checked bug
1 parent 24f4cc4 commit c34b670

File tree

5 files changed

+17
-11
lines changed

5 files changed

+17
-11
lines changed

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "react-validify",
3-
"version": "2.0.8",
3+
"version": "2.0.9",
44
"description": "Form validation made easy",
55
"main": "dist/form.js",
66
"directories": {

src/form.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ export default class Form extends React.Component {
5555
let values = { ...this.props.values, ...this.state.values };
5656

5757
values[target.name] =
58-
target.checked || target.checked === false
58+
target.type === 'checkbox' || target.type === 'radio'
5959
? target.checked
6060
: target.value;
6161

src/input.js

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,16 +3,16 @@ import React from 'react';
33
import getError from './get-error';
44

55
const filters = {
6-
checkbox: value => value || value === false,
7-
radio: value => value || value === false,
8-
default: value => value,
6+
checkbox: value => value || false,
7+
radio: value => value || false,
8+
text: value => value,
99
};
1010

1111
const getValue = (type, values) => {
12-
let filter = filters[type] || filters.default;
12+
let filter = filters[type || 'text'];
1313

14-
let value = values.filter(filter)[0];
15-
if (filter(value)) return value;
14+
let value = filter(values.filter(filter)[0]);
15+
if (value || value === false) return value;
1616

1717
return '';
1818
};

tests/checkbox-radio.js

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,13 +15,17 @@ test('Input works with checkbox', () => {
1515

1616
wrapper
1717
.find(Input)
18-
.simulate('change', { target: { name: 'Awesome', checked: true } });
18+
.simulate('change', {
19+
target: { name: 'Awesome', checked: true, type: 'checkbox' },
20+
});
1921

2022
expect(wrapper.find(Input).props().value).toEqual(true);
2123

2224
wrapper
2325
.find(Input)
24-
.simulate('change', { target: { name: 'Awesome', checked: false } });
26+
.simulate('change', {
27+
target: { name: 'Awesome', checked: false, type: 'checkbox' },
28+
});
2529

2630
expect(wrapper.find(Input).props().value).toEqual(false);
2731
});

tests/inputs.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,9 @@ test('Input is passed in value correctly', () => {
1515

1616
wrapper
1717
.find(Input)
18-
.simulate('change', { target: { name: 'Awesome', value: 'yes' } });
18+
.simulate('change', {
19+
target: { name: 'Awesome', value: 'yes', checked: false },
20+
});
1921

2022
expect(wrapper.find(Input).props().value).toEqual('yes');
2123
});

0 commit comments

Comments
 (0)