2010-03-10 14 views
7

Estoy usando jQuery datepicker en un campo de entrada de texto y no quiero permitir que el usuario cambie el texto en el cuadro de entrada de texto con el teclado.¿Cómo no permitir escribir en un campo de entrada de texto usando jQuery?

Aquí está mi código:

$('#rush_needed_by_english').keydown(function() { 
    //code to not allow any changes to be made to input field 
}); 

¿Cómo no permito teclado escribiendo en un campo de entrada de texto usando jQuery?

Respuesta

8
$('#rush_needed_by_english').keydown(function() { 
    //code to not allow any changes to be made to input field 
    return false; 
}); 
+0

¡Perfecto! ¡Gracias! – zeckdude

+1

¿Esto cubre los eventos de pegar? ¿Qué ocurre si hago clic en el cuadro y escribo ctrl-V? – Cheeso

+1

Use la tecla presionar en lugar de la tecla. la pulsación de tecla aún permitirá tab, ctrl-v, etc., mientras que el bloqueo bloquea todas las teclas. @Cheeso, puedo tener 5 años de retraso en responder tu pregunta, pero ... ¡Lo respondí! –

0

Usted podría:

$('#rush_needed_by_english').attr('disabled', 'disabled'); 
+0

No, eso haría que el campo parezca deshabilitado también y estoy tratando de evitar eso. Simplemente no quiero que puedan escribir. – zeckdude

+0

Otro problema con el atributo deshabilitado, estos campos no se pasarán al servidor –

6

Usted podría simplemente hacer que el campo de sólo lectura con:

$('#rush_needed_by_english').attr('readonly', 'readonly'); 

Si estás usando jQuery 1.6 +, debe utilizar el método prop() en su lugar:

$('#rush_needed_by_english').prop('readOnly', true); 
// careful, the property name string 'readOnly' is case sensitive! 

O zanja jQuery y use JavaScript plano:

document.getElementById('rush_needed_by_english').readOnly = true; 
Cuestiones relacionadas