Как запретить отправку формы на основе предоставленных данных - PullRequest
0 голосов
/ 27 января 2019

Итак, у меня есть моя форма, которую я создал.Как только я введу Не могу войти в раздел заголовка или описания, форма не будет отправлена, иначе будет.Я не совсем уверен, почему такое поведение происходит.Пока мой код выглядит следующим образом:

const m = require('mithril')

class IssueEditor {
  constructor(vnode) {
    this.title = vnode.attrs.title
    this.descriptionText = vnode.attrs.descriptionText
    this.onSubmit = vnode.attrs.onSubmit
  }
  view() {
    return m('form', {onsubmit: e => this.onSubmit({title: this.title, descriptionText: this.descriptionText})}, [
      m('.form-group', [
        m('label', {'for': 'title-input'}, 'Issue Title'),
        m('input.form-control#title-input', {value: this.title, oninput: (e) => {this.title = e.target.value}})
      ]),
      m('.form-group', [
        m('label', {'for': 'description-input'}, 'Description'),
        m('textarea.form-control#description-input', {oninput: (e) => {this.descriptionText = e.target.value}}, this.descriptionText)
      ]),
      m('button.btn.btn-primary#save-button', {type: 'submit'}, 'Save')
    ])
  }
}

1 Ответ

0 голосов
/ 04 апреля 2019

В вашей функции onsubmit вам, вероятно, понадобится e.preventDefault(), чтобы запретить Javascript автоматически отправлять форму, а не использовать вашу функцию vnode.attrs.onSubmit.

Так что измените

{onsubmit: e => this.onSubmit({title: this.title, descriptionText: this.descriptionText})}, [
*От 1008 * до
{ onsubmit: e => {
    e.preventDefault()
    this.onSubmit({ title: this.title, descriptionText: this.descriptionText })
}}, [
...