Javascript 未捕获引用错误:未定义提交
仅当按下提交按钮(将提交变量的整数值设置为1)时,我才尝试运行Javascript 未捕获引用错误:未定义提交,javascript,jquery,html,Javascript,Jquery,Html,仅当按下提交按钮(将提交变量的整数值设置为1)时,我才尝试运行函数,但我在控制台中收到此错误,并且在变量设置为1后,函数未运行: 未捕获引用错误:未定义提交 $(“表单#表单1”)。提交(功能(事件){ event.preventDefault(); var submitted=1;//将提交的变量的整数值设置为1 }); if(submitted==1){//如果变量的整数值为1 //运行函数 } 您的变量在本地的作用域是submit函数。从一开始就将其设置为0,然后在提交表单时对其进行更改
函数
,但我在控制台中收到此错误,并且在变量设置为1后,函数未运行:
未捕获引用错误:未定义提交
$(“表单#表单1”)。提交(功能(事件){
event.preventDefault();
var submitted=1;//将提交的变量的整数值设置为1
});
if(submitted==1){//如果变量的整数值为1
//运行函数
}
您的变量在本地的作用域是submit函数。从一开始就将其设置为0,然后在提交表单时对其进行更改。您必须对变量进行全局范围限定
编辑:评论是正确的。我没花一分钟去想这个。我不确定,但我认为jQuery的提交处理程序只在提交时运行,没有成功/错误处理程序函数;因此,我要么使用另一个函数来处理它,要么将您的函数放在submit回调函数中,根本不用担心
submitted
变量。有两个问题:
submitted
对于您的submit
处理程序是本地的,因为您在处理程序函数中声明了它,所以在处理程序之外无法访问它submitted
仍然具有我们在#1中给出的初始值时,您的If
语句将运行,它将不是submit
处理程序中的值,因为该处理程序尚未运行。相反,该代码需要运行以响应某个事件,这样,如果它运行以响应的事件是在提交之后if
的示例,仅供说明:
var submitted = 0;
$("form#form1").submit(function(event) {
event.preventDefault();
submitted = 1; // set the integer value of the variable submitted to 1
});
$("#btn").on("click", function() {
if (submitted == 1) {
$("<p>Submitted</p>").appendTo(document.body);
} else {
$("<p>Not yet submitted</p>").appendTo(document.body);
}
});
var提交=0;
$(“表格#表格1”)。提交(功能(事件){
event.preventDefault();
submitted=1;//将提交的变量的整数值设置为1
});
$(“#btn”)。在(“单击”,函数(){
如果(提交==1){
$(“已提交””)。附录(document.body);
}否则{
$(“尚未提交””).appendTo(document.body);
}
});
(堆栈代码段不允许表单提交,甚至不允许取消表单提交。)您应该将对函数的调用放在提交操作的回调中:
$("form#form1").submit(function(event) {
event.preventDefault();
// run a function here
});
这样,函数将在表单提交后立即调用。
submitted==1
将始终为false,因为submit
事件将在该代码块提交后才会运行。@code请参阅您提供的信息无法回答该问题。你是想确保他们不能多次提交表格,还是想做其他事情?他们是正确的。这就是我在早餐前快速回答一个问题,并且只纠正我看到的第一件事所得到的结果……你到底想什么时候运行这个函数?如果您想在按下submit按钮时运行它,只需在submit事件中调用它。