diff --git a/src/Options.tsx b/src/Options.tsx index 9608697c..8e7b1118 100644 --- a/src/Options.tsx +++ b/src/Options.tsx @@ -60,7 +60,10 @@ const Options: React.FC = (props) => { : (value: string | number) => `${value} ${locale.items_per_page}`; const handleChange = (e: React.ChangeEvent) => { - setGoInputText(e.target.value); + const value = e.target.value; + if (/^\d*$/.test(value)) { + setGoInputText(value); + } }; const handleBlur = (e: React.FocusEvent) => { diff --git a/tests/jumper.test.tsx b/tests/jumper.test.tsx index 39f0f5fe..f87dbcb7 100644 --- a/tests/jumper.test.tsx +++ b/tests/jumper.test.tsx @@ -29,6 +29,8 @@ describe('Pagination with jumper', () => { expect(quickJumper).toBeTruthy(); const input = quickJumper.querySelector('input'); fireEvent.change(input, { target: { value: '-1' } }); + expect(input.value).toBe(''); + fireEvent.change(input, { target: { value: '1' } }); fireEvent.keyUp(input, { key: 'Enter', keyCode: 13, which: 13 }); expect($$('.rc-pagination-item-active')).toHaveTextContent('1'); expect(onChange).toHaveBeenLastCalledWith(1, 10);