1

我想提交一个驻留在 jQuery UI 选项卡内的表单 - 我希望操作页面在选项卡中呈现...我能够在选项卡内“拦截”“a”标签以将这些链接调用到选项卡中(感谢这里的帮助...)

使用这个

$('#tabs-community').on('click', '.ui-tabs-panel a', function(){
    var $panel=$(this).closest('.ui-tabs-panel');
    $panel.load(this.href);
    return false;
});

我认为提交事件有类似的东西......我试过这个

$('#formID').on('submit', function(e){
    e.preventDefault();
    var formSrc = $(this).attr('action');
    var formMethod = $(this).attr('method');
    var formData = $(this).serialize();
    $.ajax({
      url: formSrc,
      type: formMethod,
      data: formData,
      success: function(data){
        //work with returned data from requested file
        alert(data);
      }
    });
  });

(取自在 jquery 选项卡中提交的表单- 但这不是我想要的)

并且它“工作”了它应该做的事情 - 但它会进行 AJAX 调用,并在警报中返回操作页面......不是我想要的。

更不用说它看起来好像 jQuery 正在剥离提交按钮变量......例如,我检查一个或另一个提交按钮的存在 - HTML 规范说如果单击提交按钮 - 它作为一个值传递,但是我的萤火虫控制台显示了 ajax 表单提交 - 'POST' 显示按钮变量的 NO SIGN(这是一个附带问题,如果我可以让表单“正常”提交到选项卡中,我认为它会消失).. 。 有什么建议么?

希望这是有道理的。

4

2 回答 2

0

我在 jqueryui 选项卡上使用,需要为要在当前页面上提交的所有表单制作一个简单的代码。

这是我基于您的代码的工作代码:

        $('form').submit(function(e) {
            e.preventDefault();

            var currentTab = tabs.tabs('option', 'selected'),
                tabId = $("li.ui-tabs-active").attr("id"),
                formSrc = $(this).attr('action'),
                formMethod = $(this).attr('method'),
                formData = $(this).serialize();

            $('#tabs-'+tabId).html("Loading...");

            $.ajax({
                url: formSrc,
                type: formMethod,
                data: formData,
                success: function(data){
                    $('#tabs-'+tabId).html(data);
                }
            });
        });

我当前的 jqueryui 版本是 1.10.2 和 jquery 1.9.1。

于 2013-05-02T16:23:52.257 回答
0

显而易见的想法是将您的结果放入<iframe>. 您可以像这样提交表单:

var $form = $('form#foobar');
//replace form by iframe
$form.hide();
$form.parent().append('<iframe id="submit-target" name="submit-target"></iframe>');
//submit form to new iframe (set target to name attribute of iframe)
$form.attr('target', 'submit-target');
$form.submit();

在另一个问题的答案iframe中详细解释了向 an 提交表单。

于 2012-06-19T07:46:18.327 回答