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');
