提交表单的jquery触发器导致无限循环

当我启动我的插件时,它会运行一个触发器,用于从mvc c#controller加载数据一次,但页面刷新无限(循环)。 当我按提交按钮运行正常。

这是问题所在:

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

{…}

你有太多内置于此。 将提交按钮更改为按钮

  

那么你只需要

 $('#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 }