我有一个登录表单和一个验证码字段。我需要一个 javascript 源来检查此验证码输入,然后将发布数据发送到操作,但我的代码似乎是错误的,e.preventDefault 函数不起作用,因为验证码字段 true 或 false 发布数据仍然发送。请帮忙。
这是我的 javascript 函数:
$(document).ready(function () {
$("#signupform").submit(function (event) {
var captchacode = $("#captchatexbox").val();
if (captchacode != "") {
var url = "/Account/ValidateCaptcha?Code=" + captchacode;
$.ajax({
url: url,
cache: false,
success: function (data) {
if (data == 0) {
alert("Invalid captcha");
event.preventDefault();
//Form post data still sent?
}
}
});
}
else alert("Captcha not null");
});
});
最佳答案
您需要将 event.preventDefault();
向上移动,使其出现在 ajax 调用之前。
在 else block 中使用 $("#signupform").submit();
以编程方式提交表单。
$(document).ready(function () {
$("#signupform").submit(function (event) {
event.preventDefault();
var captchacode = $("#captchatexbox").val();
if (captchacode != "") {
var url = "/Account/ValidateCaptcha?Code=" + captchacode;
$.ajax({
url: url,
cache: false,
success: function (data) {
if (data == 0) {
alert("Invalid captcha");
//Form post data still sent?
} else {
$("#signupform").submit();
}
}
});
}
else alert("Captcha not null");
});
});
关于javascript - 如何阻止表单提交?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59762813/