私はHTMLでフォームを作成してから、入力フィールドをフォームオブジェクトとしてjavascriptに渡しています。私は自分のプログラムがオブジェクトをJSに渡した後に1つ(name
)以外のすべての入力フィールドをリセットしたいが、フィールドがJSに渡される前にリセットされているようだ。HTMLパス入力からjavascriptおよびリセットフォームフィールドへ
HTML
<!DOCTYPE html>
<html>
<head>
<base target="_top">
<script>
// Prevent form 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);
function FormSubmit(formObject) {
google.script.run.withSuccessHandler(FormSuccess()).EnterData(formObject);
}
function FormSuccess() {
var resets = document.getElementsByClassName("reset");
for (var i = 0; i < resets.length; i++) {
resets[i].value = "";
}
google.script.run.ProgramSuccess();
}
</script>
</head>
<body>
<form id="entryForm" onsubmit="FormSubmit(this)">
Name:<br>
<input type="text" name="name">
<br>
Client Name:<br>
<input class = "reset" type="text" name="clientName">
<br>
Project Type:<br>
<input class = "reset" type="text" name="projectType">
<br>
Task:<br>
<input class = "reset" type="text" name="task">
<br>
Hours:<br>
<input class = "reset" type="number" name="hours" min="0">
<br><br>
<input type="submit" value="Submit">
<input type="reset">
</form>
</body>
</html>
Javascriptを
function EnterData(fObject) {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName("Sheet1");
sheet.activate();
var entries = [[fObject.name, fObject.clientName, fObject.projectType, fObject.task, fObject.hours]];
var range = sheet.getRange(sheet.getLastRow()+1, 2, 1, 5);
range.setValues(entries);
return;
}
function ProgramSuccess() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
ss.toast("Program Run Complete");
}
私が間違ってwithSuccessHandler
を使用していますか?または、私がやろうとしていることを達成するための別の方法がありますか?
何かすべての助けがありがとうございます。
'withSuccessHandler(FormSuccess)' '()'を削除してください。ハンドラは関数への参照を探しています。 –
@SpencerEastonありがとう、それは完璧に働いた。しかし、もう少し説明することができますか?関数を実行していて、何らかの型の変数を渡すだけではないことを指定するには '()'が必要だと思います。 –