我想提交带有 anchor 而不是按钮的表单。
这是我的表单 html 代码:
<form id="subscribe" action="index.html" method="POST">
<input type="text" name="email" id="email" /><a class="sendmail">Subscribe</a>
</form>
使用这个 jQuery 效果很好:
$('.sendmail').click(function() {
$('#subscribe').submit();
});
但我想验证输入字段,所以我将其添加到我的 jQuery 代码中:
$('.sendmail').click(function() {
$('#subscribe').submit(function(e){
e.preventDefault();
if ($('#email').val() == "") {
$('.falsification').fadeIn(1000);
}
else {
$.ajax({
type: "POST",
url: "submit.php",
data: "email="+ $('#email').val(),
success: function() {
$('.falsification').hide();
$('#subscribe').hide();
$('.verification').fadeIn(1000);}
});
}
});
});
但这行不通。你有结论了吗?
最佳答案
在 .sendmail 点击处理程序中,您设置了表单的提交处理程序,但实际上并不提交它。尝试将该代码 $('#subscribe').submit(function(e){ ...
移到点击处理程序之外,并使用您发布的原始处理程序 $('#subscribe' ).submit();
编辑: 换句话说...
$('#subscribe').submit(function(e){
e.preventDefault();
if ($('#email').val() == "") {
$('.falsification').fadeIn(1000);
}
else {
$.ajax({
type: "POST",
url: "submit.php",
data: "email="+ $('#email').val(),
success: function() {
$('.falsification').hide();
$('#subscribe').hide();
$('.verification').fadeIn(1000);}
});
}
});
$('.sendmail').click(function() {
$('#subscribe').submit();
});
关于jQuery - 提交带有 anchor 的表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9088267/