Javascript location.href不起作用,它会重定向到空白页

Javascript location.href不起作用,它会重定向到空白页,javascript,php,html,Javascript,Php,Html,我在我的网站上有一个联系表格,在你填写完并给我发了一封电子邮件后,我用一种方式更新了页面,并将你发送到我网站的url。在我的例子中,它没有这样做,只是重定向到我的php文件,为空。事先非常感谢你 下面是javascript代码: // Email validation function validateEmail(email) { var re = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\"

我在我的网站上有一个联系表格,在你填写完并给我发了一封电子邮件后,我用一种方式更新了页面,并将你发送到我网站的url。在我的例子中,它没有这样做,只是重定向到我的php文件,为空。事先非常感谢你

下面是javascript代码:

// Email validation
function validateEmail(email) {
    var re = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
    return re.test(email);
}

    // Run validation
    $("#validate").click(function() {
        $("#validate").bind("click", validate);
    });

    function validate() {
        $("#result").text("");
        var email = $("#Email").val();
        if (validateEmail(email)) {
         $("#send").show("fast");
         $("#validate").hide("fast");

        } else {
            $("#result").text("" + email + "is not a valid email address The problem is that you're loading the jQuery lib after your javascript code.

There is a certain hierarchy on which the page is loaded. So if you're going to use jQuery lib, you should load it before any dependant script.

What i did was to simply move:

<script src="assets/js/jquery-3.2.1.min.js"></script>

So it was placed before:

<script type="text/javascript">
  var frm = $('#messenger');
  frm.submit(function(ev) {
    $.ajax({
      type: frm.attr('method'),
      url: frm.attr('action'),
      data: frm.serialize(),
      success: function(data) {}
    });
    ev.preventDefault();
  });
</script>
//电子邮件验证
功能验证电子邮件(电子邮件){
变量re=/^([^()[\]\\,;:\s@\“]+(\.[^()[\]\,;:\s@\“]+)*)(\'+\”)(\[[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[1,3}.[0-9]{1,3}.];
返回重新测试(电子邮件);
}
//运行验证
$(“#验证”)。单击(函数(){
$(“#验证”).bind(“单击”,验证);
});
函数验证(){
$(“#结果”).text(“”);
var email=$(“#email”).val();
如果(验证邮件(电子邮件)){
$(“发送”).show(“快速”);
$(“#验证”).hide(“快速”);
}否则{

$(“#result”).text(“+email+”不是有效的电子邮件地址问题是您在javascript代码之后加载jQuery库

页面的加载有一定的层次结构,因此如果要使用jquerylib,应该在任何依赖脚本之前加载它

我所做的只是移动:

因此,它被放置在:


var frm=$(“#信使”);
提交财务报表(功能(ev){
$.ajax({
类型:frm.attr('method'),
url:frm.attr('action'),
数据:frm.serialize(),
成功:函数(数据){}
});
ev.preventDefault();
});

此时,您的浏览器将知道“$"是,并将正确执行您的jQuery脚本。

注释不用于扩展讨论;此对话一直是。是在缓存您的脚本。我的意思是,当您第一次加载页面时,一切都很正常。当您重新加载页面时,它似乎遗漏了一些脚本。如果打开chrome inspect,请转到“网络”选项卡并检查禁用缓存复选框,此问题将不再发生。再次感谢您的帮助。没问题。您收到我上次的答复了吗?关于缓存。是的,现在可以工作了。