javascript - 使用 ajax 时提交的“未定义”数据
问题描述
我正在使用 HTML 表单将数据发送到谷歌表格,效果很好。但是当我添加 ajax 代码时,发送到谷歌工作表的数据总是“未定义”,删除它会工作的代码但它显示代码真的很难看,所以我想使用 ajax。
$(document).ready(function() {
var submit = $("button[type='submit']");
submit.click(function() {
var data = $('form#test-form').serialize();
$.ajax({
type: 'GET',
url: 'https://script.google.com/macros/s/AKfycby8PCL7hef6N35QAEe7CcGWEVLeONJfy8ATXIsM5Sn7icTDMw8/exec',
dataType: 'json',
crossDomain: true,
data: data,
success: function(data) {
if (data == 'false') {
alert('Oopps! Đã có lỗi. Quý khách hãy thử lại hoặc liên hệ trực tiếp qua hotline nhé.');
} else {
alert('Đã tiếp nhận thành công! Cát Tiên sẽ liên hệ lại trong thời gian sớm nhất. Cám ơn quý khách');
}
}
});
return false;
});
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<form action="https://script.google.com/macros/s/AKfycby8PCL7hef6N35QAEe7CcGWEVLeONJfy8ATXIsM5Sn7icTDMw8/exec" method="GET">
<input type="text" name="SDT" id="ip2" placeholder=" SĐT hoặc Email">
<button type="submit" id="submit-form" class="button">Nhận</button>
</form>
<script type="text/javascript">
</script>
我不知道代码,我都在网络上使用教程。非常感谢您的帮助。
解决方案
您忘记在ID
表单中添加一个。您的脚本正在尝试test-form
使用此函数序列化带有 id 的表单:
var data = $('form#test-form').serialize();
找不到表单,因为您忘记将 id 添加到表单中。
只需将表单的 HTML 替换为以下内容:
<form
id="test-form"
action="https://script.google.com/macros/s/AKfycby8PCL7hef6N35QAEe7CcGWEVLeONJfy8ATXIsM5Sn7icTDMw8/exec" method="GET">
<input type="text" name="SDT" id="ip2" placeholder=" SĐT hoặc Email">
<button type="submit"id="submit-form" class="button">Nhận</button>
</form>
推荐阅读
- css - 移除 iOS 输入的内部阴影
- java - 存储的 xss 安全威胁
- azure - Azure B2C 在令牌中包含应用程序权限作为声明
- javascript - Remove() 函数在 web 的 firebase 中不起作用
- python-3.x - 带有if语句的for循环不显示列表结果
- php - Laravel BACK PACK 管理面板。匿名全局范围使用
- c# - 它说不能将类型“void”转换为“string”。我尝试了许多不同的方法,例如 ToString 和 (string) 但似乎没有任何效果
- html - 分离两个“div”元素
- python - 第 7 行,IndexError:列表索引超出范围
- c# - 为什么 VS 按字母顺序对 XML 类子项进行排序,以及如何避免这种情况?