iOS 表单提交中未显示元素

Element not showing on iOS form submission

我要的是:
提交表单时显示 "Order Processing" 元素。

我做了什么:

$("#register").validate({
  errorPlacement: function(error, element) { },
  submitHandler: function(form) {
    $('.processing-wrapper').removeClass('hidden');
    form.submit();
  }
});

我遇到的情况:

我试过的:

超时更新

$("#register").validate({
  errorPlacement: function(error, element) { },
  submitHandler: function(form) {
    $('.processing-wrapper').removeClass('hidden');
    setTimeout(function(form) {
      form.submit();
    }, 2500);
  }
});

通过这次更新,我确实看到了 "Order Processing" 元素,但也收到错误 "TypeError: Cannot read property 'submit' of undefined"

回顾:

如能为我指明正确的方向,我们将不胜感激!

超时方法是正确的修复方法,但是您收到错误是因为您已将匿名函数设置为接受 form 参数,该参数覆盖了 form外部范围并且为空,因此错误。只需删除该参数,它就可以正常工作:

$("#register").validate({
    errorPlacement: function(error, element) { },
    submitHandler: function(form) {
        $('.processing-wrapper').removeClass('hidden');
        setTimeout(function() { // no parameter here
            form.submit();
        }, 50);
    }
});

请注意,计时器延迟可以更短,我在示例中将其减少到 50 毫秒。您需要做的就是确保在提交发生之前调用删除 class,以便 UI 有机会更新。