Button внутри form по умолчанию имеет тип submit, и соответственно это событие формы и вызывает. Проще всего добавить обработчик onSubmit в элемент form.
Другой вариант добавить type='button' в элемент button. Но похоже отключение disabled у DOM-элемента не включает компонент, нужно render заново вызывать, и поэтому придётся логику checkbox переделать, чтобы связать с кнопкой через state компонента, типа
<button disabled={this.state.checkrule}>
В случае type='button' в preventDefault вообще нет необходимости, действия по умолчанию не будет.
В общем, preventDefault не срабатывает, потому что не срабатывает onClick.
С получением disabled из state работает.