2012-05-17 15 views
7

Trong số các điều khiển biểu mẫu HTML tương đối mới là các điều khiển 'type = range' và 'type = color'. Thông số nêu rõ rằng khi một biểu mẫu chứa các điều khiển như vậy được gửi, sẽ luôn có một giá trị được gửi cho các điều khiển đó. Họ không bao giờ có thể trống rỗng.Loại đầu vào của dải ô và màu sắc không được để trống. Điều gì sẽ xảy ra nếu cột cơ sở dữ liệu mà chúng phản chiếu là null?

Điều này khác với điều khiển loại = văn bản và các điều khiển tương tự khác, có giá trị thực sự có thể là chuỗi trống.

Dường như không thể sử dụng các điều khiển dải và màu để phản ánh trạng thái của các cột không có giá trị trong cơ sở dữ liệu.

Có cách giải quyết nào cho vấn đề này không?

Edit: Các hành vi được xác định bởi liên kết này ở đây: HTML5 Specification

+0

nơi bạn đọc rằng sẽ luôn có giá trị được gửi cho các kiểm soát đó? – Talha

+0

Bạn đã bao giờ thử chưa? Hành vi đó là gì? –

+0

Opera 11.61 cho thấy hành vi được mô tả trong Spec. Ví dụ: kiểm soát type = 'range' sẽ luôn gửi giá trị không trống. –

Trả lời

0

Đối với phạm vi, bạn có thể thiết lập giá trị của dãy cho một con số vượt quá giới hạn (tất nhiên, nếu bạn muốn người dùng không lộn xộn với nó):

var range = document.getElementById('rangeInput'); 
//let's say your range is 0-10 

rangeInput.style.display = 'none'; 

range.min = -1; 

range.value = -1; 
//-1 would be your "null" value 

//now, if you wanted the user to be able to edit the null range... 

range.style.display = ''; 

range.addEventListener('change',function(){ 
    if(this.value < 0) this.value = 0; 
    //this should keep people from setting it to "null" 
}); 

Tôi vẫn không chắc chắn cách bạn làm điều này cho đầu vào màu, vì không có "vượt quá giới hạn" cho nó.