画像にカーソルを合わせたときに表示されるボタンが必要です。ボタンをクリックするとフォームが表示されますが、[ファイルを選択]をクリックするとフォームが消えないようにします。
<script type="text/javascript">
$("#profile_pic, #edit_pic").hover(
function(){
$('#edit_pic').removeClass('hidden');
}
);
$("#edit_pic").click(function (){
$("#upload_form").removeClass('hidden');
});
</script>
<html>
<div id="profile_pic">
</div>
<div id="edit_pic">
</div>
<div id="upload_form">
//upload image form using cakephp
<?php
echo $this->Form->create('Account', array('enctype' => 'multipart/form-data', 'url' => array('controller' => 'images', 'action' => 'before_crop', 'accounts' , $current_user['id'])));
echo $this->Form->input('image_relpath', array('type' => 'hidden'));
echo $this->Form->input('Account.image', array('type' => 'file', 'label' => false));
echo $this->Form->end('Upload');
?>
</div>
</html>
jqueryが間違っているのか、cakephpが自動的に混乱しているのかはわかりませんが、[ファイルを選択](フォームによって作成されたボタン)をクリックすると、フォーム全体が消えます。