0

だから私はここのドキュメントに従っています:

https://developers.google.com/apps-script/html_service?hl=en#GoogleScriptAPI

同じ場所でprocessForm、withSuccessHandler、およびwithUserObjectを使用できるはずですが、現時点では機能しません。ここに1つの試みがあります

<input name='submission'>
<input type='hidden' name='match' value ='<?= match?>'>
<input type='hidden' name='week' value ='<?= j?>'>
<input type='hidden' name='assignment' value ='<?= i?>'>
<input id='button' type='button' onclick='google.script.run.processForm(this.parentNode).withSuccessHandler(submissionReceived).withUserObject(this).getCurrentDate()'>

しかし、これにより、ボタンをクリックすると次のエラーが発生します。

未定義のプロパティ「withSuccessHandler_m___」を読み取ることができません

以下は機能します:

google.script.run.withSuccessHandler(submissionReceived).processForm(this.parentNode)

ただし、「submissionReceived」関数でローカル オブジェクトを受信して​​、この特定のボタン (多数のボタン) がクリックされたという事実を反映するようにローカルに変更を加えることができるようにしたいと考えています。基本的にこの順序:

google.script.run.processForm(this.parentNode).withSuccessHandler(submissionReceived)

オブジェクトをsubmissionReceivedに渡そうとしているかどうかに関係なく、同じ「未定義のプロパティ 'withSuccessHandler_m___'を読み取れません」エラーで失敗します

以下が実行されます。

google.script.run.withSuccessHandler(submissionReceived).withUserObject(this).processForm(this.parentNode)

しかし、submissionReceived に渡される単一のパラメーターは未定義です

ボタンのクリック時にクライアント側の JavaScript 関数にオブジェクトを渡すために、これら 3 つの関数をうまく組み合わせる方法についてのアイデアはありますか?

4

1 に答える 1

0

私はこれを次のように動作させることができました:

var r = google.script.run.withSuccessHandler(submissionReceived).withUserObject(this);r.processForm(this.parentNode); 

最初にサクセスハンドラを設定する必要があるようです。また、これにより、submissionReceived 関数に 2 つのパラメーターが渡されることに注意してください。最初のパラメーターは未定義で、2 番目のパラメーターは現在のローカル オブジェクトであるため、関数の定義は次のようになります。

function submissionReceived(a,input) {

ここで、a は定義されておらず、input はスクリプトが実行される input タグに対応する dom ノードです。

于 2013-01-16T12:09:41.263 に答える