2011-05-25 68 views
0

jQuery的新功能。jQuery选择器问题

我有以下的html:

<form enctype="multipart/form-data" action="/upload/" method="post"> 
     <div class="field"> 
      <label for="id_profile_pic">Profile Pic</label> 
      <input type="file" name="profile_pic" id="id_profile_pic" /> 
     </div> 

     <div> 
     <span>Profile Picture</span> 
     <img src="/site_media/profile_pic/4e17c792-3c34-4556-8c67-135bc931eb5a.jpg"/> 
     <input type="button" value="Upload" id="upload_button" /> 
     </div> 
    </form> 

而且我需要选择帮助下面的函数

$('#upload_button').click(function() { 
    //how can I select the file input element (ie. #id_profile_pic) here? 
    }); 

感谢。

+0

你是什么意思,说“选择”?关注这个元素?或者打开一个选择文件对话框? – silex 2011-05-25 19:04:58

回答

1

,您可以定位该元素,就像你的目标首先在你最初的选择:

$("#id_profile_pic").doStuff(); 

是否有更多的东西你打算用这个做什么?

0

为什么你需要选择该元素?你可以用$('#id_profile_pic')来完成,但是你不应该只是提交表单以便实际上传?

0
$('#upload_button').click(function() { 
    // to select it here you just need 
    $('#id_profile_pic') 

}); 

,如果你想选择表单中的所有图片,你可以使用:

$('#upload_button').click(function() { 

    $(this).parent().find('img'); 

}); 
0

你应该这样做完全一样的方式,即用一个哈希(#):

$('#upload_button').click(function() { 
    var fileUploadPic = $('#id_profile_pic'); 

    var value = fileUploadPic.val(); 
}); 
0

这也可以:

$('#upload_button').click(function(){ 
    var file = $(this).closest('form').find('input[type=file]') ; 
    return ; 
} ; 

无论标记结构如何(无需知道控件ID),它都会以发布的表单的形式查找文件控件。作为perl僧侣们说,

TMTOWTDI