这是我的脚本,表单id =“details”
<script type="text/javascript">
function onLoad() {
$("#password").keyup(passCheck);
$("#repeatpass").keyup(passCheck);
}
function passCheck() {
var password = $("#password").val();
var repeatpass = $("#repeatpass").val();
if (password == repeatpass) {
$("#matchpass").text("Passwords match");
$("#matchpass").addClass("valid");
$("#matchpass").removeClass("error");
$("#details").submit(true);
} else {
$("#matchpass").text("Passwords donot match");
$("#matchpass").addClass("error");
$("#matchpass").removeClass("valid");
$("#details").submit(false);
}
}
$(document).ready(onLoad);
</script>
我想知道为什么我的表单(id =“details”)没有被提交,如果有人可以解释这个结构是如何工作的,那对我来说会更有帮助。谢谢
答案 0 :(得分:0)
<强> Working fiddle 强>
使用$("#details").submit()
代替$("#details").submit(true);
,然后移除$("#details").submit(false);
。
希望这有帮助。
答案 1 :(得分:0)
对于初学者,您无需在else块中进行.submit
调用。
此代码分三步进行:
(1).ready
命令告诉jQuery当页面准备就绪时,它应该执行名为onLoad
的函数。
(2)onLoad
函数表示当按下键盘上的键时,应调用passCheck
函数。
(3)passCheck
函数检查两个文本是否相等,如果是,则提交表单,否则不提交(即不应该调用.submit)。
这两个密码可能最初都是空的,所以它们是相同的并且尝试.submit
但是错误会阻止函数在脚本停止工作的时间。之后,脚本完全停止工作。
上面提到的关于HTML代码请求的注释和关于.submit
的参数的注释都是正确的。
答案 2 :(得分:0)
你不应该在你的submit
函数中传递参数删除你的$("#details").submit(true);
和$("#details").submit(false);
它不存在于jquery API中编写这段代码会更好用:
$( "form" ).submit(function(event) {
if ( $( "span" ).hasClass('error')) {
alert('prevented');
event.preventDefault();
}
return;
});