Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/371.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jQuery-提交带有锚的表单_Jquery_Forms_Form Submit - Fatal编程技术网

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);}
    });         
    }
});

有时,人们将按钮样式设置为锚定按钮,而不是相反。查看源代码使提交按钮看起来像锚定按钮。