質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.47%
Vue.js

Vue.jsは、Webアプリケーションのインターフェースを構築するためのオープンソースJavaScriptフレームワークです。

SPA(Single-page Application)

SPA(Single-page Application)は、単一のWebページのみでコンテンツの切り替えができるWebアプリケーションもしくはWebサイトです。ブラウザでのページ遷移がないため、デスクトップアプリケーションのようなUXを提供します。

Google フォーム

Google フォームは、 Google社が提供しているアンケートフォーム作成および集計ができる無料のツール。Googleアカウントがあれば利用が可能です。集計データは、スプレッドシートに収集され、データ分析もできます。

Q&A

0回答

594閲覧

vue.jsのSPAでgoogleフォームとリンクする方法またはnew Vueする方法

退会済みユーザー

退会済みユーザー

総合スコア0

Vue.js

Vue.jsは、Webアプリケーションのインターフェースを構築するためのオープンソースJavaScriptフレームワークです。

SPA(Single-page Application)

SPA(Single-page Application)は、単一のWebページのみでコンテンツの切り替えができるWebアプリケーションもしくはWebサイトです。ブラウザでのページ遷移がないため、デスクトップアプリケーションのようなUXを提供します。

Google フォーム

Google フォームは、 Google社が提供しているアンケートフォーム作成および集計ができる無料のツール。Googleアカウントがあれば利用が可能です。集計データは、スプレッドシートに収集され、データ分析もできます。

0グッド

0クリップ

投稿2022/01/29 03:36

初学者です。
ウェブサイトを見ながらSPAのページにgoogleフォームをアレンジしてのせようとしていますがページが真っ白になってしまいました。
コード後半のscriptでnew Vueしてるのが原因でしょうか?
直し方を教えていただきたいです、よろしくお願いいたします。

contact.vue

1<template> 2 <div id="webabcForm"> 3 <form v-on:submit.prevent="submit" v-if="showForm"> 4 <label for="name">お名前</label><br> 5 <input id="name" v-model="name" type="text" name="entry.2005620554" placeholder="氏名" required><br> 6 7 <label for="org">団体名/会社名</label><br> 8 <input id="org" v-model="org" type="text" name="entry.232322884"><br> 9 10 <label for="tel">お電話番号</label><br> 11 <input id="tel" v-model="tel" type="tel" name="entry.1166974658"><br> 12 13 <label for="mail">メールアドレス</label><br> 14 <input id="mail" v-model="mail" type="email" name="entry.1045781291" placeholder="example@mail.co.jp" required><br> 15 16 <label for="sub">件名</label><br> 17 <input id="sub" v-model="sub" type="text" name="entry.2138031892" required><br> 18 19 <label for="content">内容</label><br> 20 <textarea id="content" v-model="content" name="entry.839337160" required></textarea><br> 21 22 <button type="submit" name="button" value="送信">送信</button> 23 </form> 24 <div class="p-formSuccess" v-else> 25 <p>メッセージ送信完了<p> 26 <div class="btn"><a href="/">ホームへ戻る</a></div> 27 </div> 28 </div> 29</template> 30 31<script> 32new Vue({ 33 el: "#webabcForm", 34 data: { 35 showForm: true, 36 name: "", 37 org: "", 38 tel: "", 39 mail: "", 40 sub: "", 41 content: "" 42 }, 43 methods: { 44 submit: function () { 45 const submitParams = new FormData(); 46 submitParams.append("entry.", this.name); 47 submitParams.append("entry.", this.org); 48 submitParams.append("entry.", this.tel); 49 submitParams.append("entry.", this.mail); 50 submitParams.append("entry.", this.sub); 51 submitParams.append("entry.", this.content); 52 53 const CORS_PROXY = "https://cors-anywhere.herokuapp.com/"; 54 const GOOGLE_FORM_ACTION = "https://docs.google.com/forms//formResponse"; 55 56 axios.post(CORS_PROXY + GOOGLE_FORM_ACTION, submitParams).then(res => { 57 this.showForm = false; 58 }); 59 this.showForm = false; 60 } 61 } 62}); 63</script> 64

main.js

1// The Vue build version to load with the `import` command 2// (runtime-only or standalone) has been set in webpack.base.conf with an alias. 3import Vue from 'vue' 4import App from './App' 5import router from './router' 6import axios from 'axios' 7import VueAxios from 'vue-axios' 8import { Slide } from 'vue-burger-menu' 9 10Vue.use(VueAxios, axios) 11 12Vue.component('slide', Slide) 13 14Vue.config.productionTip = false 15 16/* eslint-disable no-new */ 17new Vue({ 18 el: '#app', 19 router, 20 components: { App }, 21 template: '<App/>', 22}) 23

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.47%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問