2012-05-17 7 views
7

Entre los controles de formulario HTML relativamente nuevos están los controles 'type = range' y 'type = color'. La especificación establece que cuando se envía un formulario que contiene dichos controles, siempre habrá un valor enviado para esos controles. Ellos nunca pueden estar vacíos.El tipo de color y el rango de entrada HTML5 no pueden estar vacíos. ¿Qué pasa si la columna de la base de datos que están duplicando es nula?

Esto difiere del tipo = control de texto, y otros controles similares, cuyo valor puede ser la cadena vacía.

Parece ser imposible que los controles de rango y de color se usen para reflejar el estado de las columnas que aceptan nulos en una base de datos.

¿Hay alguna solución para esto?

Editar: El comportamiento se especifica mediante este enlace aquí: HTML5 Specification

+0

donde lee que siempre habrá un valor enviado para esos controles? – Talha

+0

¿Alguna vez lo intentó? ¿Cuál es el comportamiento entonces? –

+0

Opera 11.61 muestra el comportamiento descrito en la especificación. Por ejemplo, type = 'range' control siempre enviará un valor no vacío. –

Respuesta

0

Para rangos, puede establecer el valor de la distancia a un número que está fuera de límites (por supuesto, si desea que el usuario no meterse con él):

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" 
}); 

todavía estoy seguro de cómo podría hacer esto para las entradas de color, porque no hay "fuera de límites" para ello.

Cuestiones relacionadas