单击文件输入后,Fancybox正在关闭

时间:2012-02-13 00:16:10

标签: jquery ruby-on-rails ruby fancybox

我有问题。我在fancybox里面有形式。此表单有一个文件字段。

<div style="display:none"><div id="avatar_form">
      <%= form_for @user do |f| %>
      <%= f.file_field :avatar, :value => @user.profile.avatar %><br/>
      <%= f.submit "Change Avatar"  %><br/>
      <% end %>
</div></div>

但是点击一个按钮来选择文件花式框正在关闭。但我不希望它关闭。

这称为奇特的盒子

$("a#avatar").fancybox();

这里是ajax

$("#edit_user").bind("submit", function() {
    $.fancybox.showActivity();
    $.ajax({
        type        : "POST",
        cache   : false,
        url     : "anyurl",
        data        : $(this).serializeArray(),
        success: function(data) {
            $.fancybox(data);
        }
    });
    return false;
});

我做错了什么?我不知道该怎么办。提前谢谢!

1 个答案:

答案 0 :(得分:1)

嗯。我首先尝试阻止文件输入在DOM树上传播任何事件,这可能会不必要地触发关闭事件:

    success: function(data) {
        $.fancybox(data);
        $("#avatar_form > form > input[type='file']").on("click change", function (e) {
            e.stopPropagation();
        });
    }