Question

I have a form in which I need to disable an array of checkboxes and a few fields so that the user cannot change/alter their values. When I submit the form though, the POST values of the disabled elements are missing/null. How can I manage what I'm trying to do without this problem?

Right now I'm disabling the fields by disabling the container div like this:

#unselectable {
    -moz-user-select: -moz-none;
    -khtml-user-select: none;
    -webkit-user-select: none;
    -o-user-select: none;
    -webkit-user-select: none;
    cursor:not-allowed; 

}
Was it helpful?

Solution

Well, there are 3 solutions I can think of:

  • Make them readonly by adding the readonly property to the element.
  • disable them in CSS/JavaScript. Color it like it's disabled, and don't allow editing with JavaScript,
  • Leave it disabled, and remove the disabled on submit.

Take your pick :)

OTHER TIPS

you could use readonly instead of disabled wich is almost the same for the user (can't be editet) but the values of readonly-elements get submitted while the disabled ones don't.

note that there are some other differences between readonly and disabled wich might lead to other problems for you:

The Disabled attribute

  • Values for disabled form elements are not passed to the processor method. The W3C calls this a successful element.(This works similar to form check boxes that are not checked.)
  • Some browsers may override or provide default styling for disabled form elements. (Gray out or emboss text) Internet Explorer 5.5 is particularly nasty about this.
  • Disabled form elements do not receive focus.
  • Disabled form elements are skipped in tabbing navigation.

The Read Only Attribute

  • Not all form elements have a readonly attribute. Most notable, the , , and elements do not have readonly attributes (although thy both have disabled attributes)
  • Browsers provide no default overridden visual feedback that the form element is read only. (This can be a problem… see below.)
  • Form elements with the readonly attribute set will get passed to the form processor.
  • Read only form elements can receive the focus
  • Read only form elements are included in tabbed navigation.

There is not much point in sending the same data to and fro.

Just leave in on the server side and then use it upon submit.

Besides, assuming that

user cannot change/alter their values.

is quite silly.

You could use "read-only" instead of disabled, which should have the wanted effect

You can also use javascript to submit your form, and pre-submit un-disable (enable :P ) the various fields?

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top