2010-10-28 47 views
74

Tôi muốn vô hiệu hóa trường nhập, nhưng khi tôi gửi biểu mẫu, nó vẫn phải chuyển giá trị.Gửi giá trị của trường nhập bị vô hiệu hóa

Trường hợp sử dụng: Tôi đang cố gắng lấy vĩ độ và kinh độ từ Google Maps và muốn hiển thị nó, nhưng tôi không muốn người dùng chỉnh sửa nó.

Điều này có khả thi không?

+1

bản sao có thể có của [Đầu vào biểu mẫu bị vô hiệu hóa không xuất hiện theo yêu cầu] (http://stackoverflow.com/questions/7357256/disabled-form-inputs-do-not-appear-in-request) –

Trả lời

159

Tôi muốn Disable một Trường nhập trên một hình thức và khi tôi gửi biểu mẫu các giá trị từ các hình thức tàn tật không phải là nộp .

Trường hợp sử dụng: tôi đang cố gắng để có được Lạt LNG từ Google Map và muốn hiển thị nó .. nhưng không muốn người dùng chỉnh sửa nó.

Bạn có thể sử dụng readonly tài sản trong lĩnh vực đầu vào của bạn

<input type="text" readonly="readonly" /> 
+0

Điều này sẽ không vô hiệu hóa trường như anh ta muốn (giá trị sẽ vẫn được thông qua) –

+9

@Pekka: Điều đó tôi * nghĩ * những gì anh ta muốn. Khi anh ta làm cho nó bị vô hiệu hóa, giá trị không vượt qua nhưng với chỉ đọc, anh ta có thể ngăn không cho nó chỉnh sửa và giá trị sẽ vẫn được chuyển. – Sarfraz

+0

@Sarfraz ah, đủ công bằng. Nó có thể là cả hai cách, đúng. –

4

Các yếu tố đầu vào có thuộc tính được gọi là disabled. Khi hình thức nộp, chỉ cần chạy một số mã như thế này:

var myInput = document.getElementById('myInput'); 
myInput.disabled = true; 
+0

Đơn giản và thông minh! Cảm ơn ! –

+0

MacGyver sẽ tự hào –

+0

Giải quyết câu hỏi gốc, để chuyển giá trị trong quá trình gửi biểu mẫu "bị vô hiệu hóa" thuộc tính phải là "sai" thay vì "đúng". –

10

bạn cũng có thể sử dụng thuộc tính chỉ đọc: đầu vào không được sẽ được chuyển sang màu xám nhưng nó sẽ không thể chỉnh sửa

<input type="text" name="lat" value="22.2222" readonly="readonly" /> 
+0

cảm ơn bạn: D cho lời giải thích –

15

Tôi biết điều này là cũ nhưng tôi chỉ chạy vào vấn đề này và không ai trong số các câu trả lời phù hợp. giải pháp của NickF hoạt động nhưng nó đòi hỏi javascript. Cách tốt nhất là vô hiệu hóa trường và vẫn truyền giá trị là sử dụng trường nhập ẩn để chuyển giá trị cho biểu mẫu. Ví dụ:

<input type="text" value="22.2222" disabled="disabled" /> 
<input type="hidden" name="lat" value="22.2222" /> 

Cách này giá trị được chuyển nhưng người dùng nhìn thấy trường màu xám. Thuộc tính chỉ đọc không làm xám nó ra.

+1

Bạn có thể thêm CSS trên các hộp văn bản bị vô hiệu hóa để tô xám chúng ngoài. – krillgar

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