Проверка того, была ли форма отправлена ​​дважды с помощью QUnit - PullRequest
0 голосов
/ 04 февраля 2019

Я пытаюсь понять поведение QUnit, используя Chutzpah в Visual Studio.Следующий плагин JQuery должен предотвращать двойное представление формы:

$.fn.preventDoubleSubmit = function () {
$(this).submit(function (e) {
    if (this.beenSubmitted) {
        return false;
    }
    else {
        this.beenSubmitted = true;
    }
});
return this;
};

Он используется так:

<script>
$(function () {
    jQuery('#someForm).preventDoubleSubmit();
});
</script>

Теперь я хочу протестировать его с помощью QUnit, так что каждый раз, когдаФорма отправляется, счетчик увеличивается, и, следовательно, мы можем проверить, отправлена ​​ли форма.вот так:

/// <reference path="../jquery-1.10.2.js" />
/// <reference path="extensions.js" />

(function ($) {

    var hasSubmitted = 0;
    this.$form.preventDoubleSubmit();

    this.$parent.on("submit", function () {
        hasSubmitted++;
    });

    this.$form.submit();
    equal(hasSubmitted, 1, 'It should have been submitted');

    this.$form.submit();
    equal(hasSubmitted, 1, 'It should not have been submitted');
});
})(jQuery);

Однако форма представляется дважды отправленной.Тем не менее, за пределами QUnit код работает должным образом (форма отправляется только один раз).

Что здесь происходит и / или как правильно проверить отправку форм в QUnit и Chutzpah?Спасибо!

ps, пробовал использовать движки Phantom и Chrome, но результат тот же.

...