Некоторые проблемы:
- -кнопка Отправить должна быть внутри формы для правильного запуска
submit
-обытия:
<b-form>
<b-form-group>...</b-form-group>
<b-button type="submit">Submit</b-button>
</b-form>
Шаблон ссылается на
solution
, но это только локальная переменная внутри
onSubmit()
. Чтобы сделать это доступным для рендеринга, инициализируйте его как опору из
data()
, как показано ниже. Позже вы установите его в
onSubmit()
, используя
this.solution = /* new value */
.
export default {
data() {
return {
//...
solution: 0,
}
}
}
onSubmit()
относится к this.weight
и this.height
, но эти значения фактически хранятся под this.form
, поэтому они должны быть this.form.weight
и this.form.height
соответственно.
При вычислении ИМТ не используется правильный синтаксис для возведения числа в квадрат. Вы можете использовать Math.pow()
или просто умножить его на себя:
export default {
methods: {
onSubmit() {
this.solution = this.form.weight / Math.pow(this.form.height, 2)
// OR
this.solution = this.form.weight / (this.form.height * this.form.height)
}
}
}
<b-form-input>
привязаны к
form.height
и
form.weight
, но в настоящее время это строки, что приведет к ошибке при вычислении ИМТ, для чего требуются числа. В настоящее время для типов ввода неправильно заданы значения
type="height"
и
type="weight"
, но это должно быть
type="number"
. Кроме того, при использовании
v-model
для числа обязательно используйте модификатор
.number
, чтобы значение обновлялось до правильного типа:
<b-form-input v-model.number="form.weight" type="number">
<b-form-input v-model.number="form.height" type="number">
Изменить привязку к числовым входам