特殊情况:使用对话框内的表单编程查询字符串

我包含了我的项目片段。 当我运行此代码时,单击窗口对话框上的添加,并在提交内部,Firebug响应错误。

我想知道为什么这不alert ("Se funziona questo mi hai aiutato");

http://api.jquery.com/submit/

在网站的末尾有一个例子,它在我的电脑上工作正常。

现在我公开我的代码或练习我在窗口对话框(Jquery)中使用表单的地方。

我想编程,我有解决方案,但函数的JavaScript中的脚本不起作用。

为什么?

现在我谈谈我的项目。

使用对话框的窗口(Jquery我的代码)添加任何内容。

该项目不起作用。 因为(使用Firebug控制台)它在按下按钮添加对话框后,在库jquery.min.js line 2上给出了这个错误too much recursion

如何改进运行警报的代码?

我的项目:

           //  $(document).ready(function() { var regex,v,l,c,b,i,contapara=3; $( "#wnd_Addparam" ).dialog({ autoOpen: false, height: 'auto', width: 350, modal: true, resizable:false, buttons: { "Add": function() { contapara=(parseInt(contapara)+1); alert("popopo"); $("#formparam").submit(function() { alert("Se funziona questo mi hai aiutato"); }); $( this ).dialog( "close" ); }, Cancel: function() { $( this ).dialog( "close" ); } }, close: function() { $( this ).dialog( "close" ); } }); $( "#btn_Addpar" ).click(function() { i=(parseInt(contapara)+1); $("#formparam").remove(); $("#wnd_Addparam").append('
\
\
\ TextIntegerFloat\ List of valuesRange\ Selection (collapsed)\ Selection (expanded)\ Subimage selection\ Polygon selection\ Horizontal separator\
'); $( "#wnd_Addparam" ).dialog( "open" ); }); });

我也看了这个问题当我使用JQuery提交我的GET表单时如何更改查询字符串? 并且他使用(总是在函数的提交内)这个脚本:

  function(event) { event.preventDefault(); $this = $(this); alert("Se funziona questo mi hai aiutato"); } 

但它也不起作用。

我改变你的jsFiddle以使一些工作正常,但它可能仍然不是你想要的方式:

jsFiddle 。

我将jQuery和jQuery-ui添加到你的jsFiddle中,因此它会编译,并在你应该放置表单提交代码的地方放置一个警报存根。

您的.submit()处理程序未被调用,因为添加和取消按钮是由jquery-ui .dialog(...)调用添加的,并且不是

元素的一部分。

如果你将ajax代码放在“添加”按钮function处理程序中,你应该很高兴。 我不知道你的大部分代码是做什么的,但这至少有帮助。

 var regex,v,l,c,b,i,contapara=3; $( "#wnd_Addparam" ).dialog({ autoOpen: false, height: 'auto', width: 350, modal: true, resizable:false, buttons: { "Add": function() { contapara=(parseInt(contapara)+1); alert("add was clicked"); // to use ajax uncomment below, depending on the // service you're hitting, you may need // to change it to $.get(... etc // which will use HTTP GET verb /* var $fm = $("#formparam"); $.post($fm.attr('action'), $fm.serializeArray()) .done(function(data, ok){ alert('call done: ' + ok); // data is the content of the response }) .fail(function(data){ alert('call failed'); // call failed for some reason -- add error messaging? }); */ $( this ).dialog( "close" ); }, Cancel: function() { $( this ).dialog( "close" ); } } }); $( "#btn_Addpar" ).click(function() { i=(parseInt(contapara)+1); $("#formparam").remove(); $("#wnd_Addparam").append('
\
\
'); $( "#wnd_Addparam" ).dialog( "open" ); }); ​

由于此行,您收到“太多递归”错误:

 close: function () { $(this).dialog("close"); } 

你在这里说的是,当对话框关闭时,你应该关闭对话框,它会在无限循环中激活这个处理程序。 注释掉这一行或者完全删除它。