Javascript 为什么即使在密码匹配后,我的表格也没有提交。?

Javascript 为什么即使在密码匹配后,我的表格也没有提交。?,javascript,java,jquery,jsp,Javascript,Java,Jquery,Jsp,这是我的一段脚本,格式为id=“details” 函数onLoad(){ $(“#密码”).keyup(passCheck); $(“#repeatpass”).keyup(passCheck); } 函数密码检查(){ var password=$(“#password”).val(); var repeatpass=$(“#repeatpass”).val(); 如果(密码==repeatpass){ $(“#匹配通行证”).text(“密码匹配”); $(“#匹配通行证”).addCla

这是我的一段脚本,格式为id=“details”


函数onLoad(){
$(“#密码”).keyup(passCheck);
$(“#repeatpass”).keyup(passCheck);
}
函数密码检查(){
var password=$(“#password”).val();
var repeatpass=$(“#repeatpass”).val();
如果(密码==repeatpass){
$(“#匹配通行证”).text(“密码匹配”);
$(“#匹配通行证”).addClass(“有效”);
$(“#匹配过程”).removeClass(“错误”);
$(“#详细信息”)。提交(正确);
}否则{
$(“#匹配通行证”).text(“密码不匹配”);
$(“#匹配过程”).addClass(“错误”);
$(“#匹配过程”).removeClass(“有效”);
$(“#详情”)。提交(假);
}
}
$(文件)。准备就绪(已加载);
我想知道为什么我的表单(id=“details”)没有被提交,如果有人能解释这个结构是如何工作的,这将对我更有帮助。谢谢

使用
$(“#详细信息”).submit()
代替
$(“#详细信息”).submit(true)并删除
$(“#详细信息”)。提交(错误)


希望这能有所帮助。

对于初学者,您不需要有
。在else块中提交
调用

此代码分为三个步骤:

(1)
.ready
命令告诉jQuery,当页面准备就绪时,它应该执行名为
onLoad
的函数

(2)
onLoad
功能告诉我们,当按下键盘上的一个键时,应该调用
passCheck
功能

(3)
passCheck
函数检查两个文本是否相等,如果相等,则提交表单,否则不提交(即根本不应调用.submit)

可能这两个密码最初都是空的,因此它们相等,并且尝试了
.submit
,但出现了一个错误,阻止了脚本停止工作的功能。之后,脚本将完全停止工作


上面提到的关于HTML代码请求的注释和关于
.submit
的参数的注释都是正确的。

您不应该在
submit
函数中传递参数来删除
$(“#详细信息”)。submit(true)
$(“#详细信息”)。提交(错误)jquery API中没有它。编写此代码片段会更好地使用:

$( "form" ).submit(function(event) {
  if ( $( "span" ).hasClass('error')) {
   alert('prevented');
   event.preventDefault();
 }
 return;
});

您是否介意分享html,我是指表单部分请访问并相应编辑您的问题。谢谢,很好!谢谢valar morgulis,我很快就从手机上接听了,所以它真的需要编辑!
$( "form" ).submit(function(event) {
  if ( $( "span" ).hasClass('error')) {
   alert('prevented');
   event.preventDefault();
 }
 return;
});