JQuery UI对话框和重复的表单元素

时间:2016-09-27 08:14:53

标签: javascript jquery ajax forms jquery-ui

我正在使用来自malsup.com的JQuery UI对话框和ajax提交插件。

问题是UI对话框(我相信这是罪魁祸首)是复制表单的字段。除了这个表单用于上传多个文件之外,它不会是一个问题。表单使用DataTable。

除了复制字段外,这个过程还可以。

我没有重复使用会复制字段的对话框(请参阅http://apidock.com/rails/ActiveRecord/Calculations/pluck

页面获取表单并通过ajax提交:这是代码:

function smxTableDialogForm ( aURL, tableId, row ) {

    var lData = "";
    var lURL = aURL.split("?");
    var lDialog;
    if (lURL.length == 2){
       lData = lURL[1]; 
       lURL = lURL[0]
    };

    $.ajax({
       type: "POST",
       url: lURL,
       data: lData,
       dataType: "json"
      }).
    done( function(response){
         if ( response.success ){
           lDialog = $("<div></div>").dialog( {
              height: "auto",
              maxHeight: 800,
              width: 750,
              autoOpen: false,
              buttons: [
                { text: "Save",
                  icons: {primary: "ui-icon-check" },
                  click: function () {
                    smxAjaxSubmit(response.formid);
                    $(this).dialog("close");
                  }
                },
                { text: "Cancel",
                  icons: {primary: "ui-icon-close"},
                  click: function() {
                     $(this).dialog("close");
                }
              }],
              close: function (event, ui) { 
                  $(this).remove(); 
              },
              resizable: false,
              modal: true
           });

          lDialog.html(response.content);

          lDialog.dialog("open");
         }
         else {
             $.alert(response.message, response.title);
          };
        }).
        fail( function(jqXHR, textStatus, errorThrown) {
           $.alert("Sorry, no info to display.", "oops");
        });

};

function smxAjaxSubmit (aFormId) {

    $("#" + aFormId).ajaxSubmit({
        dataType: "json",
        beforeSend: function(){
          $.blockUI({ message: '<h3><img src="/sysimages/ajaxloader.gif" /> Just a moment...</hr>' });
        },
        complete: function(){
          $.unblockUI();
        },
        success: function(response) {       
          alert(response);
        },
        error: function(jqXHR, textStatus, errorThrown) {
           $.alert("Problem. status: " + textStatus + "; error: " + errorThrown, "oops");
        }
    });
};

感激地收到任何想法。感谢。

0 个答案:

没有答案