diff --git a/lib/javascript-static.js b/lib/javascript-static.js index 5bbc9c3e5e9..cb924520e9d 100644 --- a/lib/javascript-static.js +++ b/lib/javascript-static.js @@ -263,15 +263,28 @@ M.util.show_confirm_dialog = function(e, args) { if (target.test('a')) { window.location = target.get('href'); + } else if ((targetancestor = target.ancestor('a')) !== null) { window.location = targetancestor.get('href'); + } else if (target.test('input')) { targetform = target.ancestor('form'); - if (targetform && targetform.submit) { - targetform.submit(); + if (!targetform) { + return; } + if (target.get('name') && target.get('value')) { + targetform.append(''); + } + targetform.submit(); + + } else if (target.get('tagName').toLowerCase() == 'form') { + // We cannot use target.test('form') on the previous line because of + // http://yuilibrary.com/projects/yui3/ticket/2531561 + target.submit(); + } else if (M.cfg.developerdebug) { - alert("Element of type " + target.get('tagName') + " is not supported by the M.util.show_confirm_dialog function. Use A or INPUT"); + alert("Element of type " + target.get('tagName') + " is not supported by the M.util.show_confirm_dialog function. Use A, INPUT, or FORM"); } };