11

Ecco il mio sito web: http://splash.inting.org/wp/Bootstrap Datepicker (evitare l'immissione di testo o limitare l'immissione manuale)

Attualmente uso la Bootstrap Datepicker (range branch) per la mia chiamata campo Data ed è stato fantastico.

Anche se ho 2 Problemi:

1) È possibile inserire manualmente le stringhe nel campo di inserimento. Questo è strano dal momento che il original by eyecon non è consentito immettendo la data corrente ogni volta che si immettono valori non di data. Ho provato l'attributo readonly e non sembra funzionare perché non ti permetterà di selezionare alcuna data.

2) Ho limitato le date di immissione della data a martedì e giovedì modificando una risposta in another post. Al momento del caricamento di DatePicker, la data predefinita scelta è la data corrente, che può essere qualsiasi altro giorno della settimana. Voglio evitare questo e ho solo martedì o giovedì selezionati.

+0

il tuo sito è inattivo – Trevor

risposta

2

utilizzare l'attributo di sola lettura e aggiungere un add-on dopo l'elemento di input per innescare il DatePicker dopo l'ingresso:

<input type="text" name="CallDate" value="" id="CallDate" class="wpcf7-form-control wpcf7-text wpcf7-validates-as-required input-medium date date-pick" size="40" readonly> 
<span class="add-on"><i class="icon-calendar"></i></span> 

che dovrebbe funzionare.

Per il secondo problema si potrebbe utilizzare una versione modificata del datepicker da qui: https://github.com/eternicode/bootstrap-datepicker e utilizzare l'opzione daysOfWeekDisabled

65

Override gli eventi chiave sul controllo di input.

<input onkeydown="return false" ... /> 
+1

Risposta perfetta :) –

+0

La migliore risposta di tutte le domande simili. Se esegui readonly o disabled, questo impedisce al nuovo tipo di input di input HTML di visualizzare il selettore di date incorporato nel browser. Questo metodo consente l'esperienza di navigazione predefinita ma proibisce l'inserimento manuale! –

+0

Grazie mille ... funziona ... –

1

sono riuscito ad ottenere soluzione accettabile come segue:

$(".date").datetimepicker({ 
    defaultDate: moment(), 
    format: 'YYYY-MM-DD' 
}).end().on('keypress paste', function (e) { 
    e.preventDefault(); 
    return false; 
}); 

auguro che funziona anche per te!

+0

'keypress' non tiene conto della chiave di cancellazione ... Ho usato' keydown' invece e ho impedito l'esecuzione dell'azione sulla scheda (keycode = 9) e restituire (keycode = 13) chiavi. – Pablo