¿Cómo uso el jQuery Datepicker con una entrada de cuadro de texto:
$("#my_txtbox").datepicker({
// options
});
eso no permite al usuario ingresar texto aleatorio en el cuadro de texto. Quiero que el Selector de fecha aparezca cuando el cuadro de texto se enfoca o el usuario hace clic en él, pero quiero que el cuadro de texto ignore cualquier entrada del usuario usando el teclado (copiar y pegar, o cualquier otro). Quiero llenar el cuadro de texto exclusivamente desde el calendario Datepicker.
es posible?
jQuery 1.2.6
Datepicker 1.5.2
jquery
datepicker
Elliot Vargas
fuente
fuente
$("#my_txtbox").prop('readonly', true)
<input ... readonly="readonly" style="cursor:pointer; background-color: #FFFFFF">
Según mi experiencia, recomendaría la solución sugerida por Adhip Gupta:
El siguiente código no permitirá que el usuario escriba nuevos caracteres, pero le permitirá eliminar caracteres:
Además, esto hará que el formulario sea inútil para aquellos que tienen JavaScript deshabilitado:
fuente
readonly
atributo al campo a través de JS, se asegura de que si tienen JavaScript deshabilitado (y por lo tanto no podrán usar el selector de fecha), aún pueden usar el formulario a través de la entrada manual estándar.$("#my_txtbox").prop('readonly', true)
;tratar
fuente
Si está reutilizando el selector de fecha en varios lugares, entonces sería adecuado modificar el cuadro de texto también a través de JavaScript mediante el uso de algo como:
justo después / antes del lugar donde inicializa su selector de fechas.
fuente
hace que el cuadro de texto pierda su valor después de la devolución de datos.
Debería usar la sugerencia de Brad8118, que funciona perfectamente.
EDITAR: para que funcione para IE use 'keydown' en lugar de 'keypress'
fuente
agregue el atributo de solo lectura en el jquery.
fuente
Tienes dos opciones para hacer esto. (Por lo que sé)
Opción A: haga que su campo de texto sea de solo lectura. Se puede hacer de la siguiente manera.
Opción B: cambiar el cursor sobre el enfoque. Configura ti para difuminar. se puede hacer configurando el atributo
onfocus="this.blur()"
en el campo de texto del selector de fecha.Ex:
<input type="text" name="currentDate" id="currentDate" onfocus="this.blur()" readonly/>
fuente
Después de inicializar el selector de fecha:
fuente
$(".project-date").datepicker().keydown(false);
Para seleccionar el elemento emergente en el foco de ganancia:
Si no desea la entrada del usuario, agregue esto al campo de entrada
fuente
Acabo de encontrar esto, así que estoy compartiendo aquí. Aqui esta la opcion
https://eonasdan.github.io/bootstrap-datetimepicker/Options/#ignorereadonly
Aquí está el código.
HTML
JS
Aquí está el violín:
http://jsfiddle.net/matbaric/wh1cb6cy/
Mi versión de bootstrap-datetimepicker.js es 4.17.45
fuente
Este tipo de demostración lo hace colocando el calendario sobre el campo de texto para que no pueda escribirlo. También puede configurar el campo de entrada para leer solo en el HTML para estar seguro.
fuente
HTML
CSS
fuente
Sé que este hilo es antiguo, pero para otros que tienen el mismo problema, implementan la solución @ Brad8118 (lo cual prefiero, porque si elige hacer la entrada de solo lectura, el usuario no podrá eliminar el valor de fecha insertado de datepicker si lo desea) y también necesita evitar que el usuario pegue un valor (como @ErikPhilips sugirió que se necesitara), dejo esta adición aquí, que funcionó para mí:
$("#my_txtbox").bind('paste',function(e) { e.preventDefault(); //disable paste });
desde aquí https://www.dotnettricks.com/learn/ jquery / disable-cut-copy-and-paste-in-textbox-using-jquery-javascript y todo el script específico que utilicé (usando el complemento fengyuanchen / datepicker):fuente
En lugar de agregar readonly , también puede usar onkeypress = "return false;"
fuente
Descubrí que el complemento jQuery Calendar, al menos para mí, en general, funciona mejor para seleccionar fechas.
fuente
fuente
Aquí está su respuesta, que es la forma de resolverla. No desea usar jquery cuando restringe la entrada del usuario en el control del cuadro de texto.
fuente
$ ("# my_txtbox"). prop ('solo lectura', verdadero)
trabajado como un encanto..
fuente
En lugar de usar el cuadro de texto, también puede usar el botón. Funciona mejor para mí, donde no quiero que los usuarios escriban la fecha manualmente.
fuente
Sé que esta pregunta ya está respondida, y la mayoría sugirió usar la
readonly
atribución.Solo quiero compartir mi escenario y responder.
Después de agregar el
readonly
atributo a mi Elemento HTML , me enfrenté al problema de que no puedo hacer este atributo de formarequired
dinámica.Incluso intenté configurarlo como ambos
readonly
yrequired
en el momento de la creación de HTML.Así que sugeriré no usar
readonly
si desea configurarlorequired
también.En lugar de usar
Esto permite presionar
tab
solo la tecla.Puede agregar más códigos clave que desea omitir.
Yo debajo del código ya que he agregado ambos
readonly
yrequired
todavía envía el formulario.Después de quitar
readonly
funciona correctamente.https://jsfiddle.net/shantaram/hd9o7eor/
fuente
reemplace la ID del selector de tiempo: IDofDatetimePicker a su ID.
Esto evitará que el usuario ingrese más entradas de teclado, pero aún así, el usuario podrá acceder a la ventana emergente de tiempo.
$ ("# my_txtbox"). keypress (function (event) {event.preventDefault ();});
Pruebe esta fuente: https://github.com/jonthornton/jquery-timepicker/issues/109
fuente
Esta pregunta tiene muchas respuestas antiguas y solo parece ser la solución generalmente aceptada. Creo que el mejor enfoque en los navegadores modernos es usar la
inputmode="none"
etiqueta de entrada HTML:o, si prefieres hacerlo en script:
No lo he probado exhaustivamente, pero funciona bien en las configuraciones de Android con las que lo he usado.
fuente
O podría, por ejemplo, usar un campo oculto para almacenar el valor ...
y en el $ ("# my_txtbox"). datepicker ({opciones:
fuente
Si desea que el usuario seleccione una fecha del selector de fechas pero no desea que el usuario escriba dentro del cuadro de texto, utilice el siguiente código:
fuente