Vai ir iespējams atspējot veidlapas laukus, izmantojot CSS? Es, protams, zinu par atribūtu disabled, bet vai ir iespējams to norādīt CSS noteikumā? Kaut ko līdzīgu -
<input type="text" name="username" value="admin" >
<style type="text/css">
input[name=username] {
disabled: true; /* Does not work */
}
</style>
Es jautāju tāpēc, ka man ir lietojumprogramma, kurā veidlapas lauki tiek automātiski ģenerēti, un lauki tiek paslēpti/parādīti, pamatojoties uz dažiem noteikumiem (kas darbojas Javascript). Tagad es gribu to paplašināt, lai atbalstītu lauku atspējošanu/izslēgšanu, bet noteikumi ir uzrakstīti tā, lai tie tieši manipulētu ar veidlapas lauku stila īpašībām. Tāpēc tagad man ir jāpaplašina noteikumu mehānisms, lai mainītu gan veidlapas lauku atribūtus, gan stilu, un tas kaut kādā veidā šķiet ne visai ideāli.
Ļoti interesanti, ka CSS ir redzamas un parādītas īpašības, bet nav iespējama/izslēgta. Vai ir kaut kas līdzīgs vēl nepabeigtajā HTML5 standartā vai pat kaut kas nestandarta (specifisks pārlūkprogrammai)?
Tā kā noteikumi darbojas JavaScript, kāpēc gan tos neizslēgt, izmantojot javascript (vai manā piemērā - jQuery)?
$('#fieldId').attr('disabled', 'disabled'); //Disable
$('#fieldId').removeAttr('disabled'); //Enable
DATUMS
attr
funkcija vairs nav galvenais risinājums, kā norādīts komentāros zemāk. Tagad tas tiek darīts ar prop
funkciju.
$( "input" ).prop( "disabled", true ); //Disable
$( "input" ).prop( "disabled", false ); //Enable
Tas ir ļoti ziņkārīgs, ka jums ir redzams un parādīt īpašības CSS, bet ne iespējot/izslēgt.
Ļoti interesanti, ka jūs domājat, ka tas ir ļoti interesanti. Jūs kļūdaini izprotat CSS mērķi. CSS nav paredzēts, lai mainītu veidlapas elementu uzvedību. Tā ir paredzēta tikai to stilda maiņai. Teksta lauka paslēpšana nenozīmē, ka teksta lauks vairs nebūs vai ka pārlūkprogramma nepārsūtīs datus, kad jūs nosūtīsiet veidlapu. Tas tikai paslēpj to no lietotāja acīm.
Lai atslēgtu laukus, ir jāizmanto atribūts disabled
HTML valodā vai DOM īpašība disabled
JavaScript valodā.