【问题标题】:Script works in chrome but not in edge or other browser脚本在 chrome 中有效,但在边缘或其他浏览器中无效
【发布时间】:2019-07-09 09:26:15
【问题描述】:

我有一个脚本在 Chrome 中运行良好,但在边缘甚至其他浏览器上都无法运行

$("#contactform").submit(function(e) {
  var checker = $('.hobby  :checkbox:checked').length;
  if (checker <= 0) {
    e.preventDefault();
    e.stopPropagation();
    e.stopImmediatePropagation();
    alert("Please choose hobby");

  } else {
    var xSeconds = 1000; // 1 second
    setTimeout(function() {
      $('#formholder').fadeOut('fast');
    }, xSeconds);
    setTimeout(function() {
      $('#resultcontent').fadeIn('fast');
    }, xSeconds);

  }
});

【问题讨论】:

  • “不起作用”是无用的描述。请访问help center,使用tour 了解内容和How to Ask。做一些研究,搜索关于 SO 的相关主题;如果您遇到困难,请发布您的尝试minimal reproducible example,并注明输入和预期输出。
  • 我给你做了一个sn-p。请添加相关的 HTML 和 CSS 以创建 minimal reproducible example
  • 还有$('#formholder').fadeOut('fast',function() { $('#resultcontent').fadeIn(1000); });
  • e.preventDefault(); 就足够了
  • 我建议您发布一个可以为我们提供有关该问题的详细想法的工作示例。如果您收到任何错误或警告消息,请告知我们。它可以帮助缩小问题的范围。感谢您的理解。

标签: javascript jquery google-chrome cross-browser microsoft-edge


【解决方案1】:

是选择器还是淡入淡出效果不好?

如果选择器不起作用:

如果您的复选框编码为&lt;input class="hobby" ...&gt;,那么您的'.hobby :checkbox:checked' 选择器将不起作用,因为它正在寻找input 的子级。

删除空格,使用'.hobby:checkbox:checked'

我建议避免使用 jQuery 的非标准 :checkbox 选择器,而是使用 'input.hobby:checked'

如果淡入淡出效果不起作用:

假设您希望结果内容显示在 iframe 中,那么您需要:

<form target="resultframe" ... </form> <iframe name="resultframe" id="resultcontent"></iframe>

form target 匹配 iframe name

如果没有 iframe 也没有目标,那么表单提交将替换当前页面。除非服务器处理请求的时间超过 1000 毫秒,否则当前页面的内容将在 fadeOut 有机会启动之前被替换。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-11-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-29
    相关资源
    最近更新 更多