html - 我是代码新手,为什么我的用户表单没有重定向到相同的链接或没有自动重置表单
问题描述
使用 HTML 创建用户表单
它已成功将数据返回到谷歌表格,但单击提交后未重置表单。
谁能帮助我,我是这个代码的新手
如果可能的话,任何人都可以通过下一个按钮告诉我如何编写多级表单,请给我任何示例代码或文件...。
<!DOCTYPE html>
<html>
<title>Factory Order Form</title>
<body style="background-color:lightgrey;">
<head>
<meta name="viewport" content="width=device-width, initial-scale=2.0">
<base target="_top">
<link rel="stylesheet" href="https://ssl.gstatic.com/docs/script/css/add-ons1.css">
</head>
<body>
<form id="myform">
Entry Name:
<input type="text" style="font-weight: bold;" name="Entry_Name" size='10' required>
<label for="Store_Name" required>Store Name :</label>
<select id="Store_Name" name="Store_Name" >
<option value="" style="display:none;"></option>
<option value="Gokul - Lord Sinha Road">Gokul - Lord sinha road</option>
<option value="Gokul Bhog Anadya">Gokul Bhog - Anadya</option>
</select>
Delivery Date:
<input type="date" name="Delivery_Date" size='4' required>
Delivery time:
<input type="time" name="Delivery_time" size='4'required></h3>
<br>
<hr><hr>
<br><br>
<label for="Product1">Product1 :</label>
<select id="Product1" name="Product1">
<option value="" style="display:none;"></option>
<option value="Cow_Milk_Items">Cow Milk Items</option>
<option value="Buffalo_Milk_Items">Buffalo Milk Items</option>
<option value="Dry_Items">Dry Items</option>
</select>
<label>Item_Name1 :
<select id="Item_Name1" name="Item_Name1">
<option value="" style="display:none;"></option>
<?!= getVendors(); ?>
</select>
Qty1 :
<input type="Number" name="Qty1" >
<label for="KG_PC">KG/PC :</label>
<select id="KG_PC1" name="KG_PC1">
<option value="" style="display:none;"></option>
<option value="KG">KG</option>
<option value="PC">PC</option>
</select>
Rate1 :
<input type="Number" name="Rate1">
Size1 :
<input type="text" name="Size1">
Order No.1 :
<input type="Number" name="Order_No1">
<br>
<div class="block">
<button type="submit" class="action">Submit</button>
</div>
</form>
<script>
document.querySelector("#myform").addEventListener("submit",
function(e)
{
e.preventDefault(); //stop form from submitting
google.script.run.addNewItem(this);
google.script.host.close();//close this dialogbox
}
);
</body>
</html>
----------gs 代码----------
function doGet(e) {
var htmlOutput = HtmlService.createTemplateFromFile('form');
return htmlOutput.evaluate();
}
function addNewItem(form_data)
{
var ss1 = SpreadsheetApp.getActiveSpreadsheet();
var of = ss1.getSheetByName("Prod data Submit");
of.getRange("b1").setValue(data.Entry_Name)
of.getRange("b2").setValue(data.Store_Name)
of.getRange("b3").setValue(data.Delivery_Date)
of.getRange("b4").setValue(data.Delivery_time
}
解决方案
问题:
如果我理解正确,您正在通过 为电子表格设置一些值google.script.run.addNewItem(this);
,并且您希望在完成此操作后重置表单字段。
解决方案:
为此,如果执行成功,您应该使用withSuccessHandler(function)执行回调函数addNewItem
,并重置表单字段。重置这些字段的一种简单方法是使用HTMLFormElement.reset()。
因此,您的script
标签可能是这样的:
<script>
document.querySelector("#myform").addEventListener("submit",
function(e) {
e.preventDefault();
google.script.run.withSuccessHandler(resetForm)
.addNewItem(this);
});
function resetForm() {
document.querySelector("#myform").reset();
}
</script>
其他问题:
这里还有其他几个问题。如果您使用的是您提供的确切代码,则您目前无法将数据写入电子表格:
- 在您提供的 HTML 中,
<script>
标签没有关闭 (</script>
)。 - 在
addNewItem
中,参数被调用form_data
,但随后您正在使用data
. 两个变量应该匹配,否则你会得到一个错误。 - 您正在使用google.script.host.close(),它用于关闭对话框或侧边栏,但在像您这样的网络应用程序中没有位置。
推荐阅读
- angularjs - AngularJS 编译动态内容
- javascript - 在 jQuery 中使用正确的选择器无需重复代码
- drupal-7 - 在新节点 create 上,Drupal 给出错误消息“可能未引用图像字段中使用的文件。”
- arrays - 我可以使用 UnsafePointer.withMemoryRebound 将 [UInt8] 重新映射到 [UInt16] 吗?
- google-oauth - 如何查找用户的电子邮件 ID?- 谷歌 Oauth2 API PHP 客户端
- azure-api-management - URL 模板参数在 APIM 中不起作用
- azure - Azure 上的大 JSON 流
- typescript - 用嵌套类创建类的最佳方法是什么?
- react-native - React Native中有数组时如何选中复选框?
- android - 当用户在应用程序打开时打开位置时,我获取位置为时已晚。这是我的 GPSTracking 代码