javascript - Hvordan legge til et «readonly»-attributt på et ?


Hvordan kan jeg legge til readonly på et spesifikt <input>? .attr('readonly') fungerer ikke.

Svar #1

jQuery <1.9

$('#inputId').attr('readonly', true);

jQuery 1.9+

$('#inputId').prop('readonly', true);

Les mer om forskjellen mellom prop og attr

Svar #2

Bruk $.prop()

$("#descrip").prop("readonly",true);

$("#descrip").prop("readonly",false);

Svar #3

Readonly er et attributt som definert i HTML, så behandl det som ett.

Du trenger å ha noe som readonly="readonly" i objektet du jobber med hvis du vil at det ikke skal være redigerbart. Og hvis du vil at det skal være redigerbart igjen, vil du ikke ha noe som readonly=''(dette er ikke standard hvis jeg forstod det riktig). Du må virkelig fjerne attributtet helt.

Som sådan, mens bruk av jQuery, er det å legge det til og fjerne det det som gir mening.

Sett noe til skrivebeskyttet:

$("#someId").attr('readonly', 'readonly');

Fjern skrivebeskyttet:

$("#someId").removeAttr('readonly');

Dette var det eneste alternativet som virkelig fungerte for meg. Håper det hjelper!

Svar #4

.attr('readonly', 'readonly') bør gjøre susen. Din .attr('readonly') returnerer bare verdien, den setter ikke en.

Svar #5

Jeg tror "disabled" ekskluderer inputen fra å bli sendt i POST

Svar #6

Du kan deaktivere skrivebeskyttet ved å bruke .removeAttr;

$('#descrip').removeAttr('readonly');

Relaterte artikler