1

HTML サービス、特に HTML フォームを使用しようとしています。複雑な html 構造内に送信ボタンがあります。どのように私は行をsobstituteすることができます:

<input type="button" value="Submit"
          onclick="google.script.run
              .withSuccessHandler(returnFunctionHandler)
              .processForm(this.parentNode)" />

this.parentNode Node フォーム要素ではありません。

現在、ProcessForm アプリ スクリプト関数には何も渡されておらず、まったく実行されていないようです。

前もって感謝します

<script>
      function updateUrl(url) {
        var div = document.getElementById('output');
        div.innerHTML = '<a href="' + url + '">Got it!</a>';
      }
    </script>
    <form id="myForm">
    <fieldset style="width: 0px; border-color: #0000FF;">
    <legend style="color: #0000FF; font-size: 12pt; font-weight: bold; width:400px">Inserimento richiesta</legend>
    <table border="0">
    <tr>
    <td style="font-weight: bold;">Data*:</td><td></td>
    </tr>
    <tr>
    <td style="font-weight: bold;">Richiedente*:</td>
    <td>
    <select style="width:150px;">
    <? 
    var data=recuperaDati("idSSRichiedenti");
    for (var j = 1; j < data.length; j++) {
    ?>
    <option value <?=data[j][1]?>><?= data[j][0]?></option>
    <? } 
    ?>
    </select></td>
    </tr>
    <?//tipologia?>
    <tr>
    <td style="font-weight: bold;">Tipologia*:</td>
    <td>
    <select style="width:150px;">
    <? 
    var data=recuperaDati("idssTipologia");
    for (var j = 1; j < data.length; j++) {
    ?>
    <option value <?=data[j][0]?>><?= data[j][0]?></option>
    <? } 
    ?>
    </select></td>
    </tr>

    <?//livelli di urgenza?>
    <tr>
    <td style="font-weight: bold;">Livelli di urgenza*:</td>
    <td>
    <select style="width:150px;">
    <? 
    var data=recuperaDati("idssLivelliUrgenza");
    for (var j = 1; j < data.length; j++) {
    ?>
    <option value <?=data[j][0]?>><?= data[j][0]?></option>
    <? } 
    ?>
    </select style="width:150px;"></td>
    </tr>

    <?//Reparti?>
    <tr>
    <td style="font-weight: bold;">Reparto*:</td>
    <td>
    <select style="width:150px;">
    <? 
    var data=recuperaDati("idssReparti");
    for (var j = 1; j < data.length; j++) {
    ?>
    <option value <?=data[j][0]?>><?= data[j][0]?></option>
    <? } 
    ?>
    </select></td>
    </tr>


    <tr>
    <tr>
    <td style="font-weight: bold;">Cognome:</td><td><input type="text" name="cognome" size="10"></td>
    </tr>
    <tr>
    <td style="font-weight: bold;">E-mail:</td><td><input type="text" name="email" size="10"></td>
    </tr>
    <tr>
    <td style="font-weight: bold;">Allegati:</td><td><input name="myFile" type="file"/></td>
    </tr>
    <tr>
    <td></td><td style="float:right;">
      <input type="button" value="Submit"
          onclick="google.script.run
              .withSuccessHandler(returnFunctionHandler)
              .processForm(this.parentNode)" /></td>
    </tr>
    </table>     
    </fieldset>
    </form>
    <div id="output"></div>
4

2 に答える 2

0

これを使用できます:

<input type="button" value="Submit"
          onclick="google.script.run
              .withSuccessHandler(returnFunctionHandler)
              .processForm(this.parentNode.parentNode
                .parentNode.parentNode.parentNode)" />

(フォームタグまでの正しい親の数を数えただけなら)。

見栄えが悪く、変更が難しいですが、2つのレベルしかない同様のケースでうまくいきました。ただし、コードをテストしませんでした。

よろしく。

于 2014-08-10T18:01:25.073 に答える
0

document.getElementById('myForm')フォームの要素を取得するために使用できます。

そう :

<input type="button" value="Submit"
          onclick="google.script.run
              .withSuccessHandler(returnFunctionHandler)
              .processForm(document.getElementById('myForm'))" />
于 2013-05-30T14:18:13.050 に答える