Bir alanı olarak ayarladığınızda readonly
, tarayıcı alanı kilitler ve verileri gönderildikten sonra sunucuya geri gönderir . Diğer öznitelik disabled
alanı kilitler ve verileri sunucuya geri göndermez .
Her iki durumda da, değeri gönderdikten sonra aynı olacak şekilde zorla ayarlayabilirsiniz. Bu nedenle, alan readonly
veya olarak ayarlandığında disabled
ve kullanıcı HTML'yi değiştirip farklı veriler gönderdiğinde bile $form_state['values']
değişmeden kalacaktır.
function _build_element_readonly($element, &$form_state) {
$element['value']['#attributes']['readonly'] = 'readonly';
$element['value']['#value'] = isset($element['value']['#default_value'])
? $element['value']['#default_value']
: '';
return $element;
}
#value
#Default_value değerinden ayarladığımızı unutmayın . #default_value, form oluşturulduğunda yüklenen $form_state['values']
ve default_value veya kullanıcı girdisini içerecek varsayılan değeri ayarlamanın genel yoludur . #value
Açık bir şekilde ayarladığınızda , kullanıcı girişi yoksayılır ve #value
kullanılır.
Her neyse, '#access' => FALSE,
form öğelerini gizlerken kullanmanızı öneririm . Değerlerini kullanmanıza izin verirken öğeyi tamamen kaldıracaktır.
field_permissions
, işi kirli bir şekilde yapmaktan daha kolay olacaktır.