2012-02-13 10 views
1

私は問題があります。私はファンシーボックスの中に形をしています。このフォームにはファイルフィールドがあります。ファイル入力をクリックした後にファンシーボックスが閉じています

<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(); 

呼び出し、ここで私が間違っているのは何

$("#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

Hmmm。私は最初に、DOMツリーの上に任意のイベントを伝播させないようにファイル入力を停止しようとします。これは望ましくないイベントを引き起こします。

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