Skip to main content

Disabled Form Fields Strange Behavior

Disabled form fields of html will not get the values (or will get null) after submitting the Form: 

Code like below for the input form fields in HTML will generate the disabled field. Disabled field is the one which is not editable, not focusable, won’t get tab navigation, and can’t select the field. These are the characteristics of the disabled form field. We can apply this attribute on all input fields, buttons, select box, etc. 

Please find the code below:

<input type=”text” name=”accountNumber” value=”123455” disabled=”disabled”   />

The above code will generate the disabled text field where we can’t be able to edit and select the field.

Characteristics of Disabled form fields:

1)   Disabled form field cannot be focusable, i.e. you cannot focus the field.
2)   Disabled fields are non-editable.
3)   Disabled fields will not be submitted when submission of form happens or when we will click on ‘Submit’ button.
4)   Disabled fields will give null values after submitting the form where you are getting the values (it may be struts action class in case of struts or servlet class in case of servlets.
5)   We can modify the values of disabled fields only through JavaScript at client side.

How to get disable behavior for any of the input field and also getting the non-null values after form submission:

1)   Make the field ‘readOnly’ instead of ‘disabled’ one by putting the attribute as ‘readonly=”readonly”’ for html fields and ‘readOnly=”true”’ for struts JSP fields.

2)   Prepare the CSS with the color of disabled fields (i.e. gray color), and apply this CSS to the fields which you made as readonly. Now the field is non-editable because of readonly attribute and looks like disabled field because of the CSS applied.

Characteristics of ‘readonly’ fields:

1)   Fields are not editable through the screen.
2)   Fields can be modified through JavaScript code at client side.
3)   Fields can be Focusable.
4)   Fields can be selectable.
5)   Tab navigation possible on the fields.
6)   Values can be submitted after form submission.
7)   No null values after form submission whenever field contains values while submitting.

This will solve the issue with disabled fields used in the view layer for specific purpose and will help to get the disabled behavior.

Popular posts from this blog

Resolve OutOfMemoryError With ExcelExport : Export Excel Utility with Apache POI Stream API (SXSSF)

Whenever we try to export excel of huge data (for ex: around 200000-300000 records), most of the time we end up with OutOfMemoryError:JavaHeapSpace. And also consuming more time to process or export that much of data. Main reason to this kind of problem is that, the prior version of Apache POI (prior to 3.8) will not provide proper solution for this kind of situations and also we have other issues with the API designed with those versions. Even I had faced issues of not supporting more than 65000 rows of data during exporting excel with prior versions of POI. But with the version 3.8 and higher they come with solutions for all these problems. To resolve Memory issue and performance issue of Excel Export they have utilized stream API to design their API to support huge data export and performance issues. With stream API we can flush only few rows of data into the Memory and reamining we can flush to the hard memory (permanent Memory). In this example y…

Consider static factory methods instead of constructors

The normal way for a class to allow a client to obtain an instance of itself is to provide a public constructor. There is another technique that should be a part of every programmer’s toolkit. A class can provide a public static factory method, which is simply a static method that returns an instance of the class. Here’s a simple example from Boolean (the boxed primitive class for the primitive type boolean). This method translates a boolean primitive value into a Boolean object reference:

public static Boolean valueOf(boolean b) {
return b ? Boolean.TRUE : Boolean.FALSE;

          Note that a static factory method is not the same as the Factory Method pattern from Design Patterns . The static factory method described in this item has no direct equivalent in Design Patterns. A class can provide its clients with static factory methods instead of, or in addition to, constructors. Providing a static factory method instead of a public constructor has both advantages and disadvant…

Java Performance Checklist

Specify the required performance. Ensure performance objectives are clear.Specify target response times for as much of the system as possible.Specify all variations in benchmarks, including expected response ranges (e.g., 80% of responses for X must fall within 3 seconds).Include benchmarks for the full range of scaling expected (e.g., low to high numbers of users, data, files, file sizes, objects, etc.).Specify and use a benchmark suite based on real user behavior. This is particularly important for multi-user benchmarks.Agree on all target times with users, customers, managers, etc., before tuning.

Make your benchmarks long enough: over five seconds is a good target. Use elapsed time (wall-clock time) for the primary time measurements.Ensure the benchmark harness does not interfere with the performance of the application.Run benchmarks before starting tuning, and again after each tuning exercise.Take care that you are not measuring artificial situations, such as full caches contain…