簡體   English   中英

jQuery在Google Apps腳本中無法正常運行

[英]Jquery not functioning properly in Google Apps Script

我有以下代碼:

index.html

<!DOCTYPE html>
<html>
    <div>
      <form id="email_subscribe">
        <input type="email" name="email" id="email" placeholder="Enter your email">
        <input type="submit" value="Subscribe">
      </form>
      <span id="thank_you" hidden="true">Thank you!</span>
    </div>

    <?!= HtmlService.createHtmlOutputFromFile('CSS').getContent(); ?>

    <script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
    <script>
      $( document ).ready(function() {
        $( "#email_subscribe" ).submit(function() {
          google.script.run.withSuccessHandler(function(ret){
            $("#email_subscribe").slideUp();
            $( "#thank_you" ).show("slow");
            console.log(ret);
          }).addEmail(this); //"this" is the form element
         }); 
       });
    </script>
</html>

還有這個:

代碼

function doGet() {


var html = HtmlService.createTemplateFromFile('index').evaluate()
            .setTitle("Web App 2").setSandboxMode(HtmlService.SandboxMode.NATIVE);
  return html;
}

function addEmail(form){
      Logger.log(form.email);
      return 200;
}

提交表單后未顯示“謝謝您的消息”。 你能告訴我我在做什么錯。 謝謝。

但是,在IFRAME模式下,允許HTML表單提交,並且如果表單元素未指定action屬性,它將提交到空白頁面。 官方文檔

解決方案是添加return false; 或您的event.preventDefault()函數末尾的event.preventDefault()告訴瀏覽器取消事件,您的代碼應如下所示:

$( "#email_subscribe" ).submit(function() {
  google.script.run.withSuccessHandler(function(ret){
    $("#email_subscribe").slideUp();
    $( "#thank_you" ).show("slow");
    console.log(ret);
  }).addEmail(this); //"this" is the form element
 return false;
 }); 

您還可以實施文檔中建議的解決方案,使用以下代碼創建一個EventListener來防止所有表單提交加載:

<script>
  // Prevent forms from submitting.
  function preventFormSubmit() {
    var forms = document.querySelectorAll('form');
    for (var i = 0; i < forms.length; i++) {
      forms[i].addEventListener('submit', function(event) {
        event.preventDefault();
      });
    }
  }
  window.addEventListener('load', preventFormSubmit);
</script>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM