Uncaught TypeError: Cannot read property 'init' of undefined in Javascript while submitting form
Uncaught TypeError: Cannot read property 'init' of undefined in Javascript while submitting form
我正在尝试使用 python web.py 模块制作社交网络迷你网络应用程序。
我在 html 中做了一个注册表单,但是当我填写详细信息并提交它们时,浏览器控制台显示以下输出:
Uncaught TypeError: $(...).ready(...) is not a function
at scripty.js:22
loaded
jquery-3.4.1.min.js:2 Uncaught TypeError: Cannot read property 'init' of undefined
at HTMLDocument.<anonymous> (scripty.js:4)
at e (jquery-3.4.1.min.js:2)
at t (jquery-3.4.1.min.js:2)
我搜索过类似的问题,但他们的解决方案似乎不适用于这种情况。
这是我的 "scripty.js" 文件代码
$(document).ready(function () {
console.log("loaded");
$.material.init();
$(document).on("submit", "#register-form", function (e) {
e.preventDefault();
console.log("form submitted");
let form = $('#register-form').serialize(); //get the form data
//send an ajax request over to the route /postregisteration
$.ajax({
url: '/postregisteration',
type: 'POST',
data: form,
success: function (response) {
console.log(response);
}
});
});
})();
这里是 python
中的 controller.py 文件代码
import web
from Models import RegisterModel
urls = (
'/', 'Home',
'/register', 'Register',
'/postregistration', 'PostRegistration'
)
render = web.template.render("Views/Templates", base="MainLayout")
app = web.application(urls, globals())
# Classes/Routes
# Each class will be controlling a route
class Home:
def GET(self):
return render.Home()
class Register:
def GET(self):
return render.Register()
class PostRegistration:
def POST(self):
data = web.input()
print(data.username)
reg_model = RegisterModel.RegisterModel.insert_user(data)
return data.username
if __name__=="__main__":
app.run()
点击提交后,直接打印
"loaded" 并在浏览器控制台上显示错误。
但也必须显示
"form submitted".
任何帮助将不胜感激。
更改您显示的 JS 的最后一行:
来自
})();
至
});
这修复了您的第一个错误 ... is not a function
。
对于第二个错误,这意味着 $.material
是 undefined
。删除它(如果您不使用 material 设计)或确保相应的插件可用。
这是您的脚本,修复了结束行错误,material 已删除,并添加了注释以解释每一行的作用。
// Wait until the page has fully loaded before applying the script
$(document).ready(function () {
// Bind a function to the submit form
$(document).on("submit", "#register-form", function (e) {
// Prevent the default form post behavior to prevent the page from reloading
e.preventDefault();
// Get the form data
var form = $('#register-form').serialize();
// Send an ajax request over to the route /postregisteration
$.ajax({
url: '/postregisteration',
type: 'POST',
data: form,
success: function (response) {
console.log("form submitted");
console.log(response);
}
});
});
});
我正在尝试使用 python web.py 模块制作社交网络迷你网络应用程序。 我在 html 中做了一个注册表单,但是当我填写详细信息并提交它们时,浏览器控制台显示以下输出:
Uncaught TypeError: $(...).ready(...) is not a function
at scripty.js:22
loaded
jquery-3.4.1.min.js:2 Uncaught TypeError: Cannot read property 'init' of undefined
at HTMLDocument.<anonymous> (scripty.js:4)
at e (jquery-3.4.1.min.js:2)
at t (jquery-3.4.1.min.js:2)
我搜索过类似的问题,但他们的解决方案似乎不适用于这种情况。
这是我的 "scripty.js" 文件代码
$(document).ready(function () {
console.log("loaded");
$.material.init();
$(document).on("submit", "#register-form", function (e) {
e.preventDefault();
console.log("form submitted");
let form = $('#register-form').serialize(); //get the form data
//send an ajax request over to the route /postregisteration
$.ajax({
url: '/postregisteration',
type: 'POST',
data: form,
success: function (response) {
console.log(response);
}
});
});
})();
这里是 python
中的 controller.py 文件代码import web
from Models import RegisterModel
urls = (
'/', 'Home',
'/register', 'Register',
'/postregistration', 'PostRegistration'
)
render = web.template.render("Views/Templates", base="MainLayout")
app = web.application(urls, globals())
# Classes/Routes
# Each class will be controlling a route
class Home:
def GET(self):
return render.Home()
class Register:
def GET(self):
return render.Register()
class PostRegistration:
def POST(self):
data = web.input()
print(data.username)
reg_model = RegisterModel.RegisterModel.insert_user(data)
return data.username
if __name__=="__main__":
app.run()
点击提交后,直接打印 "loaded" 并在浏览器控制台上显示错误。
但也必须显示 "form submitted".
任何帮助将不胜感激。
更改您显示的 JS 的最后一行:
来自
})();
至
});
这修复了您的第一个错误 ... is not a function
。
对于第二个错误,这意味着 $.material
是 undefined
。删除它(如果您不使用 material 设计)或确保相应的插件可用。
这是您的脚本,修复了结束行错误,material 已删除,并添加了注释以解释每一行的作用。
// Wait until the page has fully loaded before applying the script
$(document).ready(function () {
// Bind a function to the submit form
$(document).on("submit", "#register-form", function (e) {
// Prevent the default form post behavior to prevent the page from reloading
e.preventDefault();
// Get the form data
var form = $('#register-form').serialize();
// Send an ajax request over to the route /postregisteration
$.ajax({
url: '/postregisteration',
type: 'POST',
data: form,
success: function (response) {
console.log("form submitted");
console.log(response);
}
});
});
});