Bir alanı olarak ayarladığınızda readonly, tarayıcı alanı kilitler ve verileri gönderildikten sonra sunucuya geri gönderir . Diğer öznitelik disabledalanı kilitler ve verileri sunucuya geri göndermez .
Her iki durumda da, değeri gönderdikten sonra aynı olacak şekilde zorla ayarlayabilirsiniz. Bu nedenle, alan readonlyveya olarak ayarlandığında disabledve 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 . #valueAçık bir şekilde ayarladığınızda , kullanıcı girişi yoksayılır ve #valuekullanı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.