Я пытаюсь понять поведение 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, но результат тот же.