From 548bfc9455c859251d62ba406d1d40135b158f67 Mon Sep 17 00:00:00 2001 From: Jan Koprowski Date: Sun, 13 Sep 2009 07:00:31 +0200 Subject: Autopopulation text form now clear content after getting focus every time. Problem described in #630. --- lib/gallery.form.js | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) (limited to 'lib/gallery.form.js') diff --git a/lib/gallery.form.js b/lib/gallery.form.js index e69be326..e1a24290 100644 --- a/lib/gallery.form.js +++ b/lib/gallery.form.js @@ -26,16 +26,23 @@ function shortFormInit(formID) { $(inputID).val(labelValue); } + // Attach event listeners to the input - $(inputID).bind("focus blur", function(e){ + $(inputID).bind("focus", function(e){ var eLabelVal = $(this).siblings("label").html(); var eInputVal = $(this).val(); // Empty input value if it equals it's label if (eLabelVal == eInputVal) { $(this).val(""); + } + }); + + $(inputID).bind("blur", function(e){ + var eLabelVal = $(this).siblings("label").html(); + // Reset the input value if it's empty - } else if ($(this).val() == "") { + if ($(this).val() == "") { $(this).val(eLabelVal); } }); -- cgit v1.2.3 From 8b7e3e6c1a6a708b7b60837c33a895682c7de32f Mon Sep 17 00:00:00 2001 From: Bharat Mediratta Date: Tue, 15 Sep 2009 20:21:12 -0700 Subject: Refactor all the short form code to tighten it up, and make it such that the form button is disabled if we're showing the placeholder text. --- lib/gallery.form.js | 42 ++++++++++++++++++++---------------------- 1 file changed, 20 insertions(+), 22 deletions(-) (limited to 'lib/gallery.form.js') diff --git a/lib/gallery.form.js b/lib/gallery.form.js index e1a24290..67245e60 100644 --- a/lib/gallery.form.js +++ b/lib/gallery.form.js @@ -3,47 +3,45 @@ * * @param shortForms array Array of short form IDs */ -function handleShortFormEvent(shortForms) { - for (var i in shortForms) { - shortFormInit(shortForms[i]); +function handle_short_form_event(short_forms) { + for (var i in short_forms) { + short_form_init(short_forms[i]); } } /** * Initialize a short form. Short forms may contain only one text input. * - * @param formID string The form's ID, including # + * @param form_id string The form's CSS id */ -function shortFormInit(formID) { - $(formID).addClass("gShortForm"); +function short_form_init(form_id) { + var form = $(form_id); + form.addClass("gShortForm"); - // Get the input ID and it's label text - var labelValue = $(formID + " label:first").html(); - var inputID = "#" + $(formID + " input[type=text]:first").attr("id"); + var label = form.find("label:first"); + var input = form.find("input[type=text]:first"); + var button = form.find("input[type=submit]"); // Set the input value equal to label text - if ($(inputID).val() == "") { - $(inputID).val(labelValue); + if (input.val() == "") { + input.val(label.html()); + button.enable(false); } - // Attach event listeners to the input - $(inputID).bind("focus", function(e){ - var eLabelVal = $(this).siblings("label").html(); - var eInputVal = $(this).val(); - + input.bind("focus", function(e) { // Empty input value if it equals it's label - if (eLabelVal == eInputVal) { - $(this).val(""); + if ($(this).val() == label.html()) { + $(this).val(""); } + button.enable(true); }); - $(inputID).bind("blur", function(e){ - var eLabelVal = $(this).siblings("label").html(); - + input.bind("blur", function(e){ // Reset the input value if it's empty if ($(this).val() == "") { - $(this).val(eLabelVal); + $(this).val(label.html()); + button.enable(false); } }); } -- cgit v1.2.3 From ffccfb9e634de527261dca8e46ac4053806ec87b Mon Sep 17 00:00:00 2001 From: Bharat Mediratta Date: Tue, 15 Sep 2009 20:23:32 -0700 Subject: Move the code that adds the .gShortForm CSS class out of gallery.short_forms.js and into the theme, since this is really a theme decision. --- lib/gallery.form.js | 13 ------------- themes/default/js/ui.init.js | 7 +++++-- 2 files changed, 5 insertions(+), 15 deletions(-) (limited to 'lib/gallery.form.js') diff --git a/lib/gallery.form.js b/lib/gallery.form.js index 67245e60..77ce3b7d 100644 --- a/lib/gallery.form.js +++ b/lib/gallery.form.js @@ -1,14 +1,3 @@ -/** - * Handle initialization of all short forms - * - * @param shortForms array Array of short form IDs - */ -function handle_short_form_event(short_forms) { - for (var i in short_forms) { - short_form_init(short_forms[i]); - } -} - /** * Initialize a short form. Short forms may contain only one text input. * @@ -16,8 +5,6 @@ function handle_short_form_event(short_forms) { */ function short_form_init(form_id) { var form = $(form_id); - form.addClass("gShortForm"); - var label = form.find("label:first"); var input = form.find("input[type=text]:first"); var button = form.find("input[type=submit]"); diff --git a/themes/default/js/ui.init.js b/themes/default/js/ui.init.js index 949933e9..93dfb275 100644 --- a/themes/default/js/ui.init.js +++ b/themes/default/js/ui.init.js @@ -2,7 +2,7 @@ * Initialize jQuery UI and Gallery Plugin elements */ -var shortForms = new Array( +var short_forms = new Array( "#gQuickSearchForm", "#gAddTagForm", "#gSearchForm" @@ -36,7 +36,10 @@ $(document).ready(function() { } // Initialize short forms - handleShortFormEvent(shortForms); + for (var i in short_forms) { + short_form_init(short_forms[i]); + $(short_forms[i]).addClass("gShortForm"); + } $(".gShortForm input[type=text]").addClass("ui-corner-left"); $(".gShortForm input[type=submit]").addClass("ui-state-default ui-corner-right"); -- cgit v1.2.3