summaryrefslogtreecommitdiffstats
path: root/js/field.js
diff options
context:
space:
mode:
Diffstat (limited to 'js/field.js')
-rw-r--r--js/field.js25
1 files changed, 25 insertions, 0 deletions
diff --git a/js/field.js b/js/field.js
index 5055c003e..380901d96 100644
--- a/js/field.js
+++ b/js/field.js
@@ -522,6 +522,31 @@ function handleVisControllerValueChange(e, args) {
if (selected) {
YAHOO.util.Dom.removeClass(label_container, 'bz_hidden_field');
YAHOO.util.Dom.removeClass(field_container, 'bz_hidden_field');
+ /* If a custom field such as a textarea field contains some text, then
+ * its content is visible by default as a readonly field (assuming that
+ * the field is displayed). But if such a custom field contains no text,
+ * then it's not displayed at all and an (edit) link is displayed instead.
+ * This is problematic if the custom field is mandatory, because at least
+ * Firefox complains that you must enter a value, but is unable to point
+ * to the custom field because this one is hidden, and so the user has
+ * to guess what the web browser is talking about, which is confusing.
+ * So in that case, we display the custom field automatically instead of
+ * the (edit) link, so that the user can enter some text in it.
+ */
+ var field_readonly = document.getElementById(controlled_id + '_readonly');
+
+ if (!field_readonly) {
+ var field_input = document.getElementById(controlled_id + '_input');
+ var edit_container =
+ document.getElementById(controlled_id + '_edit_container');
+
+ if (field_input) {
+ YAHOO.util.Dom.removeClass(field_input, 'bz_default_hidden');
+ }
+ if (edit_container) {
+ YAHOO.util.Dom.addClass(edit_container, 'bz_hidden_field');
+ }
+ }
// Restore the 'required' attribute for mandatory fields.
if (field.getAttribute('data-required') == "true") {
field.setAttribute('required', 'true');