【发布时间】:2020-03-25 03:54:40
【问题描述】:
我有一个要使用 Parsley 验证的表单。提交按钮具有以下 JavaScript 代码,以便通过 css 进行动画处理。这在 Firefox 和 Chrome 中完美运行,但在 Safari(桌面和 iOS)中什么也不做。表单验证得很好,但动画没有运行。
我追踪到返回 true;陈述。如果我将其设置为返回 false; Safari 可以正常工作,只是没有提交表单。如果我将其设置为返回 true;它适用于我测试过的所有地方,除了 Safari。
我已经阅读了很多关于 Safari 与 jQuery 的工作方式不同的文档,因此必须修改 JS 代码才能使其真正成为跨浏览器。我怎样才能修改它以在任何地方工作?
<script type="text/javascript">
$(function() {
$('#login-form').parsley().on('form:submit', function() {
$(".loginbutton").addClass("loginactive");
$(".loginbutton").css("background", "transparent");
setTimeout(function() {
$(".loginbutton").addClass("loginsuccess");
$(".loginbutton").css("background", "none repeat scroll 0 0 #ffffff");
}, 3700);
return true;
});
});
</script>
【问题讨论】:
-
尝试在 setTimeout 中使用
bind(),例如 setTimeout(function() { ... }.bind(this),250); -
不会改变任何东西来添加它。感谢您的尝试。
标签: javascript jquery css safari