Как исправить эту отправку с помощью VueJS?

У меня есть форма, которую мне нужно отправить через API и VueJS, но @submit.prevent не вызывает нужный мне метод.

Есть ли синтаксическая ошибка или что-то пропущенное, чего я не смог найти?

Я уже проверил скобки и другие синтаксические шаблоны, все в порядке. Я скопировал его и удалил часть бесполезного кода, поэтому, если вы найдете лишний или отсутствующий ";" или "}" извините :p

Код HTML и JS:

<form id = "post" method = "POST" @submit.prevent = "processForm">
  <div class = "post post-criar">
    <small>Criar uma publicação</small>
    <div class = "post-header">
      <a href = "#">
        <div class = "post-profile-img"></div>
      </a>
      O que você está precisando, <b>NetCook</b>?
    </div>
    <textarea id = "text" name = "text" v-model = "postText"></textarea>

    <div class = "clearfix" id = "vendaetroca">
      <div class = "col-lg-4">
        <input type = "text" class = "btn btn-blue" placeholder = "R$ Valor" v-model = "value">
      </div>
      <div class = "col-lg-4">
        <div class = "btn btn-green">
          <select name = "sale_category" id = "sale_category" v-model = "saleCategory">
            <option selected disabled>Tipo</option>
            <option value = "p">Produto</option>
            <option value = "s">Serviço</option>
            <option value = "i">Imóvel</option>
            <option value = "a">Automóvel</option>
          </select>
        </div>
      </div>
      <div class = "col-lg-4">
        <div class = "btn btn-purple">
          <select name = "trade_category" id = "trade_category" v-model = "tradeCategory">
            <option disabled selected>Venda ou troca</option>
            <option value = "s">Venda</option>
            <option value = "t">Troca</option>
          </select>
        </div>
      </div>
    </div>

    <div class = "clearfix">
      <div class = "col-lg-4">
        <select id = "post-categoria" name = "category" v-model = "category">
          <option selected disabled>Selecionar Categoria</option>
          <option value = "geral">Geral</option>
          <option value = "venda">Venda e Troca</option>
          <option value = "eventos">Eventos</option>
          <option value = "indicacoes">Indicações</option>
        </select>
      </div>
      <div class = "col-lg-8">
        <label class = "btn btn-img" for = "anexo-imagem"><img src = "img/ico-img.png"> Carregar Arquivo</label>
        <input type = "file" id = "anexo-imagem" name = "image" @change = "onFileChange($event, 1)">
        <button type = "submit" class = "btn btn-line-red">Publicar</button>
      </div>
    </div>
  </div>
</form>

import Form from './core/Form';
var vm = new Vue({
  el: '#app',
  data: {
    name: "", 
    form: new Form(),
    email: "",
    password: "",
    category: "",
    saleCategory: "",
    tradeCategory: "",
    postText: "",
    value:"",
  },
  methods: {
    processForm() {
      this.form.data.sale_category = this.saleCategory;
      this.form.data.trade_category = this.tradeCategory;
      this.form.data.category = this.category;
      this.form.data.image = this.name_image;
      this.form.data.video_file = this.name_file_video;
      this.form.data.value = this.value;
      this.form.data.text= this.postText;
      this.form.data.id = null;
      this.form.data.id_user = null;
      this.form.submit("http://127.0.0.1:8000/api/post/create", this.onSuccess);
      console.info("test");
    },
  }
})

Ваш корневой элемент имеет id = "app", верно?

thanksd 05.02.2019 17:50

Потому что, если это так, метод processForm вызывается, как и ожидалось. См. эту скрипку: jsfiddle.net/vjtyohqx

thanksd 05.02.2019 19:22

@thanksd это было, но в другом div ... я пытался ответить здесь, но по какой-то причине мой ответ не был добавлен, ха-ха. Думал, что идентификатор был в правильном div, но я его потерял. Спасибо! [РЕШЕНО]

Guilherme Queiróz 07.02.2019 20:26
ReactJs | Supabase | Добавление данных в базу данных
ReactJs | Supabase | Добавление данных в базу данных
Это и есть ваш редактор таблиц в supabase.👇
0
3
50
0

Другие вопросы по теме