2012-11-22 35 views
6

Khi trên điện thoại, tôi không thể xem hai nút này vì chúng quá xa nhau. Tôi muốn làm như vậy sau khi bạn chọn tệp, nút 'chọn tệp' sẽ được thay thế bằng nút tải lên. Điều này có thể. Tôi phải làm gì đây?Tạo nút đa mục đích trong html

http://goawaymom.com/buttons.png

html của tôi -

<form method="post" action="" enctype="multipart/form-data" name="form1"> 
    <input name="file" type="file"class="box"/>   
    <input type="submit" id="mybut" value="Upload" name="Submit"/> 
</form> 

-Lưu ý Tôi không quan tâm để đặt chúng vào dòng riêng biệt hoặc làm cho phông chữ smaller- vv

+0

ghi mã javascript ... là có bất cứ điều gì u cố gắng –

+0

kỹ năng javascript My aren' t tốt để nói là tốt nhất. Nếu ai đó ít nhất chỉ cho tôi đúng hướng tôi sẽ cố gắng viết mã. – thedullmistro

+0

Sau khi nhấp vào chọn tệp và nếu tệp được chụp mà không có lỗi bạn chọn, nút có thể trở thành nút tải lên gọi quy trình tải lên. Sau khi tải lên xong hoặc không nút quay trở lại để chọn chức năng. Sắp xếp của một hành vi chuyển đổi phải không? – bonCodigo

Trả lời

9

cách đơn giản nhất:

<form method="post" action="" enctype="multipart/form-data" name="form1"> 
     <input name="file" type="file" onchange="if($(this).val().length){$(this).hide().next().show()}" class="box"/>   
     <input type="submit" id="mybut" value="Upload" style="display:none;" name="Submit"/> 
    </form>  

Without Jquery, Chỉ Javascript

<form method="post" action="" enctype="multipart/form-data" name="form1"> 
     <input name="file" type="file" onchange="this.nextElementSibling.style.display = 'block'; this.style.display = 'none';" class="box"/>   
     <input type="submit" id="mybut" value="Upload" style="display:none;" name="Submit"/> 
    </form> 
+0

Hm đây là câu trả lời tôi đang tìm kiếm nhưng nó dường như không hoạt động. Cái gì còn thiếu? – thedullmistro

+0

Có lỗi gì không? –

+0

Sau khi tôi chọn tệp để tải lên nút 'chọn tệp' vẫn không thay đổi thành nút tải lên. – thedullmistro

0

Vâng, thực sự rất dễ dàng. Bạn có thể nghe onchange sự kiện nhập tệp và ẩn nó.

HTML:

<input name="inpt" type="file"/> 
<input type="button" value="Upload"/> 

Javascript:

//this event is fired when the file is chosen (not when user presses the cancel button) 
inpt.onchange = function(e) { 
    //setting display to "none" hides an element 
    inpt.style.display="none"; 
}; 

JSfiddle

PS. nếu bạn muốn, bạn có thể sử dụng cùng một mẹo để hiển thị nút "Tải lên" chỉ khi tệp được chọn. Trong trường hợp đó, mã nút sẽ là <input id="btn" type="button" value="Upload" style="display:none"/> và trong mã Javascript bạn viết btn.style.display="" để hiển thị nút.

+0

Hm-fiddle đó dường như không làm những gì tôi đã yêu cầu?Nó không thay thế nút chọn tệp bằng nút tải lên sau khi bạn chọn tệp. – thedullmistro

+0

Tôi đã thêm một số nhận xét ở cuối. Hãy thử fiddle này: http://jsfiddle.net/4Vk8Z/2/ – AlexStack

+0

Nhưng nó không phải là xấu như vậy để có được xuống bỏ phiếu. – Ramya

-1

Tôi có thể nói rằng có nhiều cách để thực hiện. Nhưng trong java script lõi dưới đây là cách tiếp cận

(1) Ban đầu thiết lập các phong cách hiển thị các nút tải lên không ai sánh kịp để giấu rằng

(2) Viết onchange xử lý sự kiện cho loại tập tin đầu vào

(3) Trong hàm xử lý đó nếu giá trị không rỗng thì ẩn tệp đầu vào bằng cách áp dụng kiểu hiển thị không và sau đó thay đổi kiểu nút tải lên thành trống ('').

Hope phương pháp này làm việc

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