0

回答フィールドが 12 でない場合にフォームの送信を拒否するスクリプトを Google スプレッドシートで作成しようとしています。

フォームにテキスト フィールドがあります: 名前とテキスト フィールド: ヒント "5 + 7 =" で答えてください

function myFunction(e) {
  var answer = "";

  try{
    for(var field in e.namedValues) {
       if (field == 'Answer') {  
          answer = e.namedValues[field].toString();  

         if ( Answer !== 12) {  // check to make sure input is 12

           throw "not the right answer";  // throw an exception with the error message
         }
       }  //end if 
    }//end for 

  } catch(e) {
    throw "try failed";
  } //end try
}

このスクリプトを保存した後、myFunction | を実行するトリガーを作成しました。スプレッドシートから | フォーム送信時。これが整ったら、ライブフォームで試してみました。13 で、エントリは引き続きスプレッドシートに表示されます。

これが機能しない理由はありますか?

4

1 に答える 1

0

現時点では、スプレッドシートに付属する標準フォームへの送信を拒否または変更することはできません。送信後に不要なデータを除外する必要があります。

送信を変更する唯一の方法は、UiApp または HtmlService を介してフォームを作成し、それに対して JavaScript を実行することです。

于 2013-04-12T14:17:18.217 に答える