2011-05-25 126 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