私は内部にテキストフィールドを持つGoogleフォームを持っています。GAS投稿前にフィールドを評価するGoogleフォーム
投稿を行う前にエンドユーザーが入力したコンテンツを評価したいが、検索の数日後にはできなかった。
code.gs
では、テキストフィールドにアクセスしてそのプロパティを取得できます。 sdi.html
が表示された場合は、これが機能doEval()
の呼び出しをトリガーします。
私の問題は、Googleフォーム自体にハンドラを追加する方法がわからないため、テキストフィールドの内容が自分のアプリで受け入れられるものかどうかを確認できることです。たとえば、これが数値の場合は検証し、そうであればフォームを送信し、そうでない場合は送信プロセスをキャンセルしてエラーメッセージを表示します。
従来のGoogleフォームでは、ハンドラを作成する方法がありましたが、現在はすべてHtmlService
というアプローチで動作していますが、どのように行うのかの例はありません。
code.gs
:
function doGet()
{
return HtmlService.createHtmlOutputFromFile('sdi')
.setSandboxMode(HtmlService.SandboxMode.IFRAME);
}
function doEval()
{
var frm = FormApp.getActiveForm();
var items = frm.getItems();
var text= items[1].asTextItem();
text.setTitle("I can access the field from here!");
}
sdi.html
:
<!DOCTYPE html>
<html>
<head>
<script>
function onSuccess(isOk)
{
}
google.script.run.withSuccessHandler(onSuccess)
.doEval();
</script>
</head>
<body>
</body>
</html>
は、それを提出する形でのボタンがありますか? 'typeof'を使って値のデータ型をテストすることができます。現在、 'google.script.run.'は関数の中にありません。関数の中に入れた場合、 'google.script.run.'を実行するかどうかを指定できます。 –
あなたが表示するものはGoogleフォームではありません。それはwebappです。 –
こんにちは、はい、あなたは正しいです、私は最初は間違って精緻化しました、それは形式ですが、私はそれを絶対に見せません。 Plsは私がSpencer Eastonに行った返信を、私がよりよく説明しているところで確認します。乾杯。 –