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

Mir*_*ani 5 javascript forms jquery jquery-ui jquery-ui-dialog

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

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

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

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

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

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

为什么?

现在我谈谈我的项目.

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

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

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

我的项目:

<html>
  <head>
    <title></title>
   <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 
    <style></style>
  </head>
     <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>
    <script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.23/jquery-ui.min.js"></script>
 <link href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/base/jquery-ui.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript">
// <---- VENTAÑAS DE PARAMETERES---->
$(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('<form method="GET" name="formparam"  id="formparam" action="${nextstep}"><table><tr><td><label>ID</label></td><td>\
    <textarea class="expand" name="inputp'+i+'_id" id="inputp'+i+'_id"></textarea></td></tr>\
    <tr><td><label>Type</label></td><td><select name="inputp'+i+'_type" id="inputp'+i+'_type">\
    <option value="text">Text</option><option value="integer">Integer</option><option value="float">Float</option>\
    <option value="list_values">List of values</option><option value="range">Range</option>\
    <option value="selection_collapsed">Selection (collapsed)</option>\
    <option value="selection_expanded">Selection (expanded)</option>\
    <option value="subimage">Subimage selection</option>\
    <option value="polygon">Polygon selection</option>\
    <option value="horizontal_separator">Horizontal separator</option>\
    </select></td></tr></table></form>');



                $( "#wnd_Addparam" ).dialog( "open" );
            });
});
</script>
  <body>
<div>
 <input type="button" id="btn_Addpar" value="Add"/>
<input type="button" id="btn_Deletepara" value="Delete"/>
<input type="button" id="btn_Pedit" value="Edit"/>
</div>
<div id="wnd_Addparam" title="New parameter" ></div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

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

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

但它也不起作用.

tif*_*fon 3

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

\n\n

jsFiddle

\n\n

我将 jQuery 和 jQuery-ui 添加到您的 jsFiddle 中,以便它可以编译,并在您应该放置表单提交代码的位置放置一个警报存根。

\n\n

您的.submit()处理程序未被调用,因为添加和取消按钮是由 jquery-ui.dialog(...)调用添加的,而不是<form>元素的一部分。

\n\n

如果您将 ajax 代码放入“添加”按钮函数处理程序中,您应该可以正常使用了。我不知道你的大部分代码是做什么的,但这至少可能有帮助。

\n\n
var regex,v,l,c,b,i,contapara=3;\n$( "#wnd_Addparam" ).dialog({\n    autoOpen: false,\n    height: \'auto\',\n    width: 350,\n    modal: true,\n    resizable:false,\n    buttons: {\n        "Add": function() {\n            contapara=(parseInt(contapara)+1);\n            alert("add was clicked");\n            // to use ajax uncomment below, depending on the \n            // service you\'re hitting, you may need\n            // to change it to $.get(... etc \n            // which will use HTTP GET verb\n            /*\n            var $fm = $("#formparam");\n            $.post($fm.attr(\'action\'), $fm.serializeArray())\n                .done(function(data, ok){\n                    alert(\'call done: \' + ok);\n                    // data is the content of the response\n                })\n                .fail(function(data){\n                    alert(\'call failed\');\n                    // call failed for some reason -- add error messaging?\n                });                            \n            */\n            $( this ).dialog( "close" );\n        },\n        Cancel: function() {\n            $( this ).dialog( "close" );\n        }\n    }\n});\n\n$( "#btn_Addpar" ).click(function() {\n                i=(parseInt(contapara)+1);\n                $("#formparam").remove();\n            $("#wnd_Addparam").append(\'<form method="GET" name="formparam"  id="formparam" action="${nextstep}"><table><tr><td><label>ID</label></td><td>\\\n            <textarea class="expand" name="inputp\'+i+\'_id" id="inputp\'+i+\'_id"></textarea></td></tr>\\\n            <tr><td><label>Type</label></td><td><select name="inputp\'+i+\'_type" id="inputp\'+i+\'_type">\\\n            <option value="text">Text</option><option value="integer">Integer</option><option value="float">Float</option>\\\n            <option value="list_values">List of values</option><option value="range">Range</option>\\\n            <option value="selection_collapsed">Selection (collapsed)</option>\\\n            <option value="selection_expanded">Selectionddddd (expanded)</option>\\\n            <option value="subimage">Subimage selectiondddddd</option>\\\n            <option value="polygon">Polygon selectionddd</option>\\\n            <option value="horizontal_separator">Horizontal separator</option>\\\n            </select></td></tr></table></form>\');\n\n\n        $( "#wnd_Addparam" ).dialog( "open" );\n    }); \xe2\x80\x8b\n
Run Code Online (Sandbox Code Playgroud)\n