2012-05-17 17 views
7

Tra i controlli del modulo HTML relativamente nuovi vi sono i controlli "type = range" e "type = color". La specifica afferma che quando viene inviato un modulo contenente tali controlli, verrà sempre inviato un valore per tali controlli. Non possono mai essere vuoti.Il tipo di input e intervallo di input HTML5 non può essere vuoto. Cosa succede se la colonna del database che stanno mirroring è nullo?

Questo differisce dal controllo testo = type e da altri controlli simili, il cui valore può essere effettivamente la stringa vuota.

Sembra impossibile che i controlli dell'intervallo e del colore siano utilizzati per riflettere lo stato delle colonne nullable in un database.

C'è qualche soluzione per questo?

Edit: Il comportamento è specificato da questo link qui: HTML5 Specification

+0

dove leggi che ci sarà sempre un valore inviato per quei controlli? – Talha

+0

Hai mai provato? Qual è il comportamento allora? –

+0

L'Opera 11.61 mostra il comportamento descritto nella Spec. Ad esempio, type = il controllo 'range' invierà sempre un valore non vuoto. –

risposta

0

Per gli intervalli, è possibile impostare il valore del campo per un numero che è fuori dai limiti (naturalmente, se si voleva che l'utente non pasticciare con essa):

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

sono ancora sicuri di come si dovrebbe fare questo per gli ingressi a colori, perché non c'è "fuori dai limiti" per esso.

Problemi correlati