jQuery的触发提交表单结果无限循环(jquery trigger for submit form

2019-09-28 06:10发布

当开始我的插件运行从MVC C#控制器用于加载数据的触发只有一次,但该网页正在刷新无限(循环)。 当我按下提交按钮运行正常。

这里的问题是:

    if (opcoes) {
        $.extend(defaults, opcoes);
                $('#formPaginacao').trigger('submit');
            }

代码休息(当我按下按钮提交作品):

    return this.each(function () {

        function postProcessing(data) {
            dados = data;
            p.totalRegistros = dados.length;
            defaults.totalPaginas = Math.ceil(p.totalRegistros / defaults.registrosPorPagina);
            defaults.registroAtual = 0;
            renderiza();
        }
        $('#formPaginacao').submit(function (e) {
            e.preventDefault();
            dados = null;
            getValues();
            e.stopPropagation();
        });

        function getValues() {
            var dadosPesquisaForm = $('#formPaginacao').serialize();
            var dadosPesquisaJson = JSON.stringify(dadosPesquisaForm);
            var dadosEnvio = JSON.parse(dadosPesquisaJson);
            $.ajax({
                type: 'POST',
                url: defaults.controleCarregaDados,
                data: dadosEnvio,
                dataType: 'json',
                cache: false,
                success: function (data) { postProcessing(data); },
                async: true,
                error: function (erro) {
                    alert('erro ajax=' + erro)
                }
            });
        };

{...}

Answer 1:

你有太多的内置到这一点。 改变你的提交按钮,只需一个按钮,

<input type="button" id="formPaginacao" value="Submit" />

那么你只需要

$('#formPaginacao').on('click', function (e) {
    $.ajax({
        type: 'POST',
        url: defaults.controleCarregaDados,
        data: $('#formPaginacao').serialize(),
        dataType: 'json',
        cache: false,
        success: function (data) { postProcessing(data); },
        async: true,
        error: function (erro) {
            alert('erro ajax=' + erro)
        }
    });
});

这不应该是在每个语句中。 只是把它放在

$(document).ready(function(){
    //button click here
});

form.serialize会把所有的值从您的形式返回给控制器。 控制器上的投入应该是您已经在视图中定义的同型号

[HttpPost]
public ActionResult formPaginacao(ModelType model){
    //do something with the data
    //return json back tot he view
}


文章来源: jquery trigger for submit form results infinite loop