jQuery-提交带有锚的表单
我想提交一个带有锚点而不是按钮的表单。jQuery-提交带有锚的表单,jquery,forms,form-submit,Jquery,Forms,Form Submit,我想提交一个带有锚点而不是按钮的表单。 以下是我的表单html代码: 订阅 使用jQuery可以很好地工作: $('.sendmail')。单击(函数(){ $(“#订阅”).submit(); }); 但是我想验证输入字段,所以我将其添加到jQuery代码中: $('.sendmail')。单击(函数(){ $(“#订阅”).submit(函数(e){ e、 预防默认值(); 如果($('#email').val()=“”){ 美元(“.伪造”).fadeIn(1000); } 否则{
以下是我的表单html代码:
订阅
使用jQuery可以很好地工作:
$('.sendmail')。单击(函数(){
$(“#订阅”).submit();
});
但是我想验证输入字段,所以我将其添加到jQuery代码中:
$('.sendmail')。单击(函数(){
$(“#订阅”).submit(函数(e){
e、 预防默认值();
如果($('#email').val()=“”){
美元(“.伪造”).fadeIn(1000);
}
否则{
$.ajax({
类型:“POST”,
url:“submit.php”,
数据:“email=“+$('#email').val(),
成功:函数(){
$('.false').hide();
$(“#订阅”).hide();
$('.verification').fadeIn(1000);}
});
}
});
});
但这不起作用。你有什么结论吗
//bind click event handler to link
$('.sendmail').click(function () {
//find the form that this link is in and trigger a submit event for the form
$(this).closest('form').trigger('submit');
//return false to stop the default behavior of the link
return false;
});
这将适用于作为表单
元素的后代的所有.sendmail
元素.closest()
查找第一个元素,该元素是与选择器匹配的根元素的直接祖先(在本例中为form
)
下面是一个演示:
看起来好像您的表单.submit
事件处理程序嵌套在链接的单击事件处理程序中。表单.submit
事件处理程序应与链接的单击事件处理程序在同一范围内:
$('.sendmail').click(function () {
$(this).closest('form').trigger('submit');
return false;
});
$('#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')。提交(函数(e){…
在单击处理程序之外,并使用您发布的原始处理程序$('#subscribe')。提交();
编辑:
换句话说
$('#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();
});
试着把它们分开:
$('.sendmail').click(function() {
$('#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);}
});
}
});
有时,人们将按钮样式设置为锚定按钮,而不是相反。查看源代码使提交按钮看起来像锚定按钮。