2010-03-10 24 views
7

Używam datepicker jQuery w polu wprowadzania tekstu i nie chcę, aby użytkownik zmienił dowolny tekst w polu wprowadzania tekstu za pomocą klawiatury.Jak uniemożliwić pisanie w polu wprowadzania tekstu przy użyciu jQuery?

Oto mój kod:

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

Jak nie mogę pozwolić wpisywanie klawiatury w polu tekstowym za pomocą jQuery?

Odpowiedz

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

Perfect! Dziękuję Ci! – zeckdude

+1

Czy to obejmuje zdarzenia wklejania? Co się stanie, jeśli kliknę pole i wpisz Ctrl-V? – Cheeso

+1

Użyj keypress zamiast keydown. naciśnięcie klawisza nadal będzie pozwalać na zakładkę, ctrl-v itp., podczas gdy keydown blokuje wszystkie klawisze. @Cheeso, być może 5 lat spóźnię się z odpowiedzią na twoje pytanie, ale ... odpowiedziałem! –

0

Mógłbyś:

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

Nie, to sprawi, że pole będzie wyglądało również na wyłączone i staram się tego uniknąć. Po prostu nie chcę, żeby mogli pisać. – zeckdude

+0

Inny problem z atrybutem wyłączonym te pola nie zostaną przekazane do serwera –

6

Można po prostu zrobić pole tylko do odczytu z:

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

Jeśli używasz jQuery 1.6 +, należy użyć metody prop() zamiast:

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

Lub porzuć jQuery i użyj zwykłego JavaScript:

document.getElementById('rush_needed_by_english').readOnly = true; 
Powiązane problemy