gpt4 book ai didi

javascript - e.PreventDefault 未定义

转载 作者:行者123 更新时间:2023-11-28 18:13:37 25 4
gpt4 key购买 nike

我有registerAjax(e)函数:

function registerAjax(e) {
e.preventDefault();
let userData = {
username: $("#username").val(),
password: $("#password").val(),
};
$.ajax({
method: "POST",
url: kinveyBaseUrl + "user/" + kinveyAppKey + "/",
headers: kinveyAppAuthHeaders,
data: userData,
success: registerSuccess,
error: handleAjaxError
});
function registerSuccess(userInfo) {
saveAuthInSession(userInfo);
showInfo('User registration successful.');
}

该函数被该函数调用

function registerUser() {
registerAjax();

当我运行应用程序时,我收到控制台消息“Uncaught TypeError: Cannot read property 'preventDefault' of undefined(…)”

有什么简单的解决方案可以解决此异常吗?

function startApplication() { 
//Bind The Form Submit Buttons
$(document).ready(function () {
$("#btnRegister").on('click', registerUser());
});
loadingBox();
//Bind the info / error boxes: hide on click
$("#infoBox, #errorBox").click(function () {
$(this).fadeOut();
});
}

最佳答案

这并不像你想象的那样:

$("#btnRegister").on('click', registerUser());

这会调用registerUser() 立即并将点击处理程序设置为 registerUser()返回值 ,它不返回任何内容。我怀疑你想要这个:

$("#btnRegister").on('click', registerUser);

在将函数传递给处理程序时,函数名称本身可以用作表示该函数的变量。 (或者当使用函数做很多事情时,除了调用它之外。在 JavaScript 中,函数是一种像任何其他类型一样的类型,并且可以像任何变量一样传递。)

此外,您需要将该事件传递给您的其他函数。默认情况下,点击处理程序将传递该事件,因此您可以使用它:

function registerUser(e) {
// e is your event
}

就您而言,您希望将其传递给其他函数:

function registerUser(e) {
registerAjax(e);
// etc.
}

关于javascript - e.PreventDefault 未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41129860/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com