【问题标题】:Using jquery ui dialog to confirm action for form submission使用 jquery ui 对话框来确认表单提交的操作
【发布时间】:2010-03-10 21:31:08
【问题描述】:

我在一个页面上有多个表单,我希望用户在提交表单之前确认每个表单。但是当用户确认提交时,我如何让这个对话框知道用户正在提交哪个表单?它需要自定义参数吗?谢谢。

$("#dialog-confirm").dialog({
        resizable: false,
        height:140,
        modal: true,
        buttons: {
            'Confirm submit': function() {
                document.______???????_____.submit();
            },
            Cancel: function() {
                $(this).dialog('close');
            }
        }
    });
$('.allForms').submit(function(){
      $('#dialog-confirm').dialog('open');
});

【问题讨论】:

    标签: jquery confirm


    【解决方案1】:

    您可以将它存储在这样的变量中:

    var currentForm;
    $("#dialog-confirm").dialog({
            resizable: false,
            height:140,
            modal: true,
            buttons: {
                'Confirm submit': function() {
                    currentForm.submit();
                },
                Cancel: function() {
                    $(this).dialog('close');
                }
            }
        });
    $('.allForms').submit(function(){
          currentForm = this;
          $('#dialog-confirm').dialog('open');
          return false;
    });
    

    由于您只是使用它并立即离开页面,因此没有真正的理由让它比这更复杂。

    【讨论】:

    • 谢谢。但是现在在我点击“确认提交”之后,它只是再次调用 $('.allForms').submit(function()) 并且实际上并没有提交。或者这是一个不同的问题?
    • @redbluegreen - 糟糕,更新了答案...currentForm = this; 不应该包含在 $()
    【解决方案2】:

    或者怎么样

    $(this.form).submit();
    

    【讨论】:

      【解决方案3】:

      根据 Nick Craver 他的回答,你可以这样写:

      $('.allForms').submit(function(){
            currentForm = this;
      
            $('#dialog-confirm').dialog({
              resizable: false,
              height:140,
              modal: true,
              buttons: {
                  'Confirm submit': function() {
                      currentForm.submit();
                  },
                  Cancel: function() {
                      $(this).dialog('close');
                  }
              }
            });
            return false;
      });
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-01-20
        • 2011-10-17
        • 1970-01-01
        • 2023-03-07
        • 2015-06-15
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多