当Chrome试图在页面上加载脚本文件时,收到主题错误.它说它在javascript文件的最后一行.我似乎没发现有什么问题.firefox中没有错误,脚本按预期工作.只是使用表单验证

// JavaScript Document
$(function() {
  $('#wm-form').submit(function() {
    var errors = false;
    var errorMsg = "";
    $('.required').each(function() {
      if(!validField($(this))) {
        errorMsg += $(this).attr('name').capitalize() + " cannot be blank\n";
        errors = true;
      }
    });
    var emailAddress = $('#email');
    if(isValid(emailAddress) && !(/^(([a-zA-Z0-9_\-\.]+)@([a-zA-Z0-9_\-\.]+)\.([a-zA-Z]{2,5}){1,25})+([;.](([a-zA-Z0-9_\-\.]+)@([a-zA-Z0-9_\-\.]+)\.([a-zA-Z]{2,5}){1,25})+)*$/.test(emailAddress.val()))) {
      errorMsg += "Not a valid email address. Please enter in a correctly formatted email address";
      errors = true;
    }
    if(errors) {
      alert(errorMsg);
      return false;
    }
  });

  $('.form-focus').click(function() {
    $(document).scrollTop(0);
    $('#first_name').focus();
    return false;
  });
});

function validField(element) {
  if(!isValid(element.val()) || (element.attr('placeholder') && element.attr('placeholder') == element.val()) || 
    (element.attr('type') == 'radio' && !checkedRadio(element))) {
    return false;
  }
  else {
    return true;
  }
}

function isValid(ele) {
  if(ele == null || ele == '') {
    return false;
  }
  else {
    return true;
  }
}

String.prototype.capitalize = function() {
    return this.charAt(0).toUpperCase() + this.slice(1);
};

function checkedRadio (element) {
  var valid = false;
  $('input[name="'+ element.attr("name") +'"]:checked').each(function() {
    valid = true;
  });

  return valid;
}​

推荐答案

There's some sort of bogus character at the end of that source. Try deleting the last line and adding it back.

I can't figure out exactly what's there, yet ...

edit — I think it's a zero-width space, Unicode 200B. Seems pretty weird and I can't be sure of course that it's not a Stackoverflow artifact, but when I copy/paste that last function including the complete last line into the Chrome console, I get your error.

A notorious source of such characters are websites like jsfiddle. I'm not saying that there's anything wrong with them — it's just a side-effect of something, maybe the use of content-editable input widgets.

如果您怀疑自己得了这种病,并且您使用的是MacOS或Linux/Unix,od命令行工具可以向您显示源代码文件字符中的数字值(尽管方式相当难看).一些IDE和编辑器也可以显示"有趣"的字符.请注意,这样的字符always不是问题.例如,在字符串常量中嵌入Unicode字符是完全可以的(至少在大多数合理的编程语言中是这样).当语言解析器遇到不需要的字符时,问题就开始发生了.

Jquery相关问答推荐

JQuery:如果 div 可见

ESLint 美元($)未定义. (无非定义)

jQuery $(".class").click(); - 多个元素,点击事件一次

将参数附加到 URL 而不刷新

如何禁用在div内单击

组合数组时无法读取未定义的属性“推送”

如何从 jQuery 转到 React.js?

$(window).width() 与媒体查询不同

如果不是 jQuery,Javascript 中的美元符号是什么

将十六进制转换为 RGBA

带有 LIKE 的 Spring JPA @Query

moment.js isValid 函数无法正常工作

jQuery获取图片src

如何在使用 jQuery 单击特定链接时打开 bootstrap 导航选项卡的特定选项卡?

在 Bootstrap 3 中向工具提示添加换行符

如何在javascript中获取json键和值?

如何使用 jQuery 判断所有复选框?

jQuery 的 .on() 方法结合提交事件

了解 Backbone.js REST 调用

Jquery:如何在按下回车键时触发点击事件