Commit ce10b6f8b46add764786e509296568ff5b01dc8f
1 parent
64d48bf4
Fixed problem with not clearing watermarks on ajax form submit.
Showing
1 changed file
with
43 additions
and
47 deletions
@@ -447,53 +447,49 @@ $.fn.watermark = function (text, options) { | @@ -447,53 +447,49 @@ $.fn.watermark = function (text, options) { | ||
447 | // we need to replace the form's submit function with our own | 447 | // we need to replace the form's submit function with our own |
448 | // function. Otherwise watermarks won't be cleared when the form | 448 | // function. Otherwise watermarks won't be cleared when the form |
449 | // is submitted programmatically. | 449 | // is submitted programmatically. |
450 | - if (this.form) { | ||
451 | - var form = this.form, | ||
452 | - $form = $(form); | ||
453 | - | ||
454 | - if (!$form.data(dataFormSubmit)) { | ||
455 | - $form.submit($.watermark.hideAll); | ||
456 | - | ||
457 | - // form.submit exists for all browsers except Google Chrome | ||
458 | - // (see "else" below for explanation) | ||
459 | - if (form.submit) { | ||
460 | - $form.data(dataFormSubmit, form.submit); | ||
461 | - | ||
462 | - form.submit = (function (f, $f) { | ||
463 | - return function () { | ||
464 | - var nativeSubmit = $f.data(dataFormSubmit); | ||
465 | - | ||
466 | - $.watermark.hideAll(); | ||
467 | - | ||
468 | - if (nativeSubmit.apply) { | ||
469 | - nativeSubmit.apply(f, Array.prototype.slice.call(arguments)); | ||
470 | - } | ||
471 | - else { | ||
472 | - nativeSubmit(); | ||
473 | - } | ||
474 | - }; | ||
475 | - })(form, $form); | ||
476 | - } | ||
477 | - else { | ||
478 | - $form.data(dataFormSubmit, 1); | ||
479 | - | ||
480 | - // This strangeness is due to the fact that Google Chrome's | ||
481 | - // form.submit function is not visible to JavaScript (identifies | ||
482 | - // as "undefined"). I had to invent a solution here because hours | ||
483 | - // of Googling (ironically) for an answer did not turn up anything | ||
484 | - // useful. Within my own form.submit function I delete the form's | ||
485 | - // submit function, and then call the non-existent function -- | ||
486 | - // which, in the world of Google Chrome, still exists. | ||
487 | - form.submit = (function (f) { | ||
488 | - return function () { | ||
489 | - $.watermark.hideAll(); | ||
490 | - delete f.submit; | ||
491 | - f.submit(); | ||
492 | - }; | ||
493 | - })(form); | ||
494 | - } | ||
495 | - } | ||
496 | - } | 450 | + if (this.form) { |
451 | + var form = this.form, | ||
452 | + $form = $(form); | ||
453 | + | ||
454 | + if (!$form.data(dataFormSubmit)) { | ||
455 | + $form.submit($.watermark.hideAll); | ||
456 | + | ||
457 | + // form.submit exists for all browsers except Google Chrome | ||
458 | + // (see "else" below for explanation) | ||
459 | + if (form.submit) { | ||
460 | + $form.data(dataFormSubmit, form.onsubmit || 1); | ||
461 | + | ||
462 | + form.onsubmit = (function (f, $f) { | ||
463 | + return function () { | ||
464 | + var nativeSubmit = $f.data(dataFormSubmit); | ||
465 | + $.watermark.hideAll(); | ||
466 | + if (nativeSubmit instanceof Function) { | ||
467 | + nativeSubmit(); | ||
468 | + } else { | ||
469 | + eval(nativeSubmit); | ||
470 | + } | ||
471 | + }; | ||
472 | + })(form, $form); | ||
473 | + } else { | ||
474 | + $form.data(dataFormSubmit, 1); | ||
475 | + | ||
476 | + // This strangeness is due to the fact that Google Chrome's | ||
477 | + // form.submit function is not visible to JavaScript (identifies | ||
478 | + // as "undefined"). I had to invent a solution here because hours | ||
479 | + // of Googling (ironically) for an answer did not turn up anything | ||
480 | + // useful. Within my own form.submit function I delete the form's | ||
481 | + // submit function, and then call the non-existent function -- | ||
482 | + // which, in the world of Google Chrome, still exists. | ||
483 | + form.submit = (function (f) { | ||
484 | + return function () { | ||
485 | + $.watermark.hideAll(); | ||
486 | + delete f.submit; | ||
487 | + f.submit(); | ||
488 | + }; | ||
489 | + })(form); | ||
490 | + } | ||
491 | + } | ||
492 | + } | ||
497 | } | 493 | } |
498 | 494 | ||
499 | $.watermark._show($input); | 495 | $.watermark._show($input); |
Please
register
or
login
to post a comment