Javascript 试图触发;点击";输入时不工作
我试图在按下enter键时触发我的一次点击按钮,以使我的网站更加用户友好。我试过下面所有的方法,它们都有相同的错误 这是我的html(请注意我使用的是哈巴狗) 这是过账功能:Javascript 试图触发;点击";输入时不工作,javascript,jquery,html,Javascript,Jquery,Html,我试图在按下enter键时触发我的一次点击按钮,以使我的网站更加用户友好。我试过下面所有的方法,它们都有相同的错误 这是我的html(请注意我使用的是哈巴狗) 这是过账功能: function add_interest() { var interests = document.getElementById('userInterests').value; interests = interests.split(" "); interests.forEach(func
function add_interest() {
var interests = document.getElementById('userInterests').value;
interests = interests.split(" ");
interests.forEach(function (data) {
if (!validInterest(data))
{
swal(
'Error!',
`${data} is not a correctly formatted interest`,
'error'
)
return ;
}
});
interests.forEach(function (data) {
if (validInterest(data))
{
let form =
{
interest: data
}
$.ajax({
type: "POST",
url : '/user/account/addinterest',
data: JSON.stringify(form),
contentType: "application/json; charset=utf-8",
dataType: "json",
});
}
});
document.getElementById("interestsPara").innerHTML = "Updated your interests";
$('#userInterests').val('');
}
这些都是我尝试过的方法,但都不管用。请注意,我显然不是在同一时间完成所有这些工作,而是在测试时一次取消对每一项的注释。我已经测试了所有这些有和没有$(文档)。准备好了吗
这是我的“错误”
Cannot POST /user/account
当我手动单击按钮时,我的功能正常工作并正确发布
(这是一个集体项目,其中一些项目不是我的,所以请不要过于严厉地批评我,并给予建设性的批评)谢谢@freedomn-m
问题是我没有意识到存在的默认表单提交行为。我将我的表单设置为onsubmitreturnfalse,如下所示,这样就成功了
<form onsubmit="return false;">
如所述
我试图使用event.preventDefault(),但它不起作用删除
$(文档)。准备好了吗
脱离您的状态!将其移动到$(“#userInterests”)
键控中的doc.ready不起任何作用-如果在doc就绪后调用doc.ready,则内部函数将立即运行。但是,将其移到keyup事件处理程序声明之外将有助于确保#在添加处理程序之前存在userInterests(假设在doc ready之后未动态添加它),看起来就像您刚刚添加了
——如果是这种情况,则在输入中按enter键将导致表单发布。您的错误是无法发布到/user/account
,但您的url是/user/account/addinterest
——因此它没有调用您的add\u interest函数(或者是,但没有给出错误)。一些简单的调试/console.log()将显示发生了什么。要确认,请添加第二个(临时)输入。若要修复,请将return false
添加到输入的keyup事件的末尾。@Pedram谢谢你我理解,我已经更新并尝试过了,但仍然没有work@freedomn-I’谢谢!我不知道这个功能是什么。禁用它修复了我的问题。我需要进行调试:)
Cannot POST /user/account
<form onsubmit="return false;">