在 jquery 验证后提交表单 - 需要通过单击按钮来发布数据

Posted

技术标签:

【中文标题】在 jquery 验证后提交表单 - 需要通过单击按钮来发布数据【英文标题】:submitting a form after jquery validate - need to pass clicked button to post data 【发布时间】:2020-05-20 19:06:09 【问题描述】:

我让 jquery validate 1.19.1 在表单上正常工作。 表单有多个按钮。我的目标是让单击的按钮传递给发布数据,以便我可以在表单回发中处理它。只需使用提交按钮就可以了,我可以在我的 php 中处理,例如单击插入按钮时:

    if (isset($_POST["insert"])) 
        print_r($_POST); 
        // do insert
    

...但是对于 JQuery,这不起作用,因为它丢失了插入按钮。 我在想也许我可以在提交之前将按钮附加到表单但没有成功,请指教?我的jquery代码如下,谢谢。

jQuery(document).ready(function($)
    $('#myForm').validate(
        submitHandler: function (form)                
            // append button here?
        
    );
    $('insert').click(function () 
        $('[name="manufacturerSelect"], [name="chassisNameInsert"]').each(function () 
            $(this).rules('add', 
                required: true
            );
        );  
        $('#myForm').submit();  // validate and submit
    );
    $('update').click(function () 
        $('[name="manufacturerSelect"], [name="chassisNameInsert"]').each(function ()                 
            $(this).rules('remove');
        ); 
        $('#myForm').submit();  // validate and submit
    );
);

【问题讨论】:

【参考方案1】:

除非有人有更优雅的解决方案,否则我认为没关系。我让它像这样工作:

    $('#insertButton').click(function () 
        $('[name="manufacturerSelect"], [name="chassisNameInsert"]').each(function () 
            $(this).rules('add', 
                required: true
            );
        );
        if ($('#myForm').valid())
            var input = $('<input>')
               .attr('type', 'hidden')
               .attr('name', 'insert').val('true');
            $('#myForm').append($(input));   
            $('#myForm').submit();
        ;            
    );

【讨论】:

以上是关于在 jquery 验证后提交表单 - 需要通过单击按钮来发布数据的主要内容,如果未能解决你的问题,请参考以下文章

jQuery在使用ajax验证后提交表单

通过 jquery submit() 提交表单后的 Laravel 文件验证;

jQuery 表单验证和 Ajax 提交的问题

仅保存按钮上的 jQuery 表单验证

jquery+ajax验证不通过也提交表单问题处理

JQuery validate + Gravity 表单冲突?