2012-05-17 46 views
6

Tôi muốn tùy chỉnh các nút đầu vào tập tin, vì vậy tôi sử dụng mã này để tạo ra một tập tin yếu tố đầu vàođộng tạo file yếu tố đầu vào

function inputBtn(){ 
    var input=document.createElement('input'); 
    input.type="file"; 
    setTimeout(function(){ 
     $(input).click(); 
    },200); 
} 

<button id="ifile" onclick="inputBtn()">create</button> 

Tuy nhiên, khi tôi bấm tạo, nó cho thấy không có gì.

+0

bạn đang nhận được một lỗi, không bạn? Ngoài ra, mã của bạn không cố gắng * hiển thị * một đầu vào, nó chỉ * tạo * một. – Bergi

+0

Bạn cũng không thể bấm vào đầu vào tệp bằng cách sử dụng jquery; không thể vì lý do bảo mật. – Daedalus

+0

@Daedalus - input.click(); sẽ thực hiện một sự kiện nhấp chuột trên phần tử DOM 'đầu vào' – user1789573

Trả lời

8

Bạn đang tạo phần tử DOM mới, nhưng bạn không gắn nó vào DOM. Bạn cần một cái gì đó như:

document.getElementById('target_div').appendChild(input); 

Bạn có thể thấy cách thức thực hiện trong thực hiện kém JSFiddle đây: http://jsfiddle.net/JQHPV/2/

+0

cảm ơn bạn Marc, nhưng tôi không muốn hiển thị yếu tố này ở phía trước, làm thế nào điều này có thể được thực hiện? – panda

+0

@PandaYang, Thêm CSS để ẩn nó: 'đầu vào {display: none}', và khi nó hoạt động cho bạn, hãy chấp nhận giải pháp này. – Marc

+0

Tôi đã thử css, nó sẽ không hoạt động, bởi vì khi nút đầu vào được ẩn, cửa sổ hiển thị cũng được ẩn. Tôi đã thử một phương pháp khác, sử dụng chiều rộng và vị trí để giảm thiểu kích thước của yếu tố đầu vào này và tìm một hình ảnh chồng lên nhau. cũng cảm ơn bạn đã giúp đỡ của bạn. – panda

Các vấn đề liên quan