Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 添加函数是禁用js文件中的其他函数_Javascript - Fatal编程技术网

Javascript 添加函数是禁用js文件中的其他函数

Javascript 添加函数是禁用js文件中的其他函数,javascript,Javascript,我在js文件中有这个函数,一切正常: function check_acco_form() { var name=$("#name").val(); var institution=$("#institution").val(); var year=$("#year").val(); //PNR Data var pnr1=$("#pnr1").val(); var pnr2=$("#pnr2").val(); // A

我在js文件中有这个函数,一切正常:

function check_acco_form()
{
    var name=$("#name").val();
       var institution=$("#institution").val();
       var year=$("#year").val();

       //PNR Data
    var pnr1=$("#pnr1").val();
    var pnr2=$("#pnr2").val();
    // Arrival date info
    var arr_year=$("#arr_year").val();
    var arr_month=$("#arr_month").val();
    var arr_date=$("#arr_date").val();
    //Departure date info
    var dep_year=$("#dep_year").val();
    var dep_month=$("#dep_month").val();
    var dep_date=$("#dep_date").val();

    var numericExpression = /^[0-9]+$/;

       //Name, institution and year must not be empty
       if(name=="" || institution=="" || year=="")
    {
        alert("One or more fields are empty.");
              return;
       }
    //PNR must be all numbers
    if(!pnr1.match(numericExpression) || !pnr2.match(numericExpression))
    {   
        alert("A PNR number consists of 10 digits only. Please enter again.");
        $("#pnr1").val("");
        $("#pnr2").val("");
        return;
    }
    if(pnr1.length!=3 || pnr2.length!=7)
    {
        alert('Invalid PNR Number.');
        $("#pnr1").val("");
        $("#pnr2").val("");
        return;
    }

    if((arr_month==dep_month && dep_date<arr_date) || (dep_month<arr_month))
    {
        alert('Invalid dates.Please check again.');
        return;
    }

    //Test passed. Store in database;
    URL="saveAcco.php";
    parameters="name="+name+"&ins="+institution+"&year="+year+"&pnr="+pnr1+""+pnr2+"&dateArr="+arr_year+"-"+arr_month+"-"+arr_date+"&dateDep="+dep_year+"-"+dep_month+"-"+dep_date;
    $.get(URL+"?"+parameters,function(data){
        $("#msg_box").html(data);
        if(data=="Your changes have been saved." || data=="Your data has been saved and is pending approval.")
              {
            $("#acco_status").html('<br/><b>Accomodation Approval Status</b> : <span style="padding:3px;background-color:#f4fb3c">Approval Pending</span><br/><br/>');
              }
        $("#msg_box").fadeIn("slow",function(){
            setTimeout('fadeOutMsgBox();',3000);
              });
          });
}
功能检查账户表()
{
var name=$(“#name”).val();
var机构=$(“#机构”).val();
var year=$(“#year”).val();
//PNR数据
var pnr1=$(“#pnr1”).val();
var pnr2=$(“#pnr2”).val();
//到达日期信息
var arr_year=$(“#arr_year”).val();
var arr_month=$(“#arr_month”).val();
var arr_date=$(“#arr_date”).val();
//出发日期信息
var dep_year=$(“#dep_year”).val();
var dep_月=$(“#dep_月”).val();
var dep_date=$(“#dep_date”).val();
var numericExpression=/^[0-9]+$/;
//名称、机构和年份不能为空
如果(名称=“”| |机构=“”| |年份=“”)
{
警报(“一个或多个字段为空。”);
返回;
}
//PNR必须是所有数字
如果(!pnr1.match(numericExpression)| |!pnr2.match(numericExpression))
{   
警报(“PNR编号仅由10位数字组成。请重新输入”);
$(“#pnr1”).val(“”);
$(“#pnr2”).val(“”);
返回;
}
如果(pnr1.长度!=3 | | pnr2.长度!=7)
{
警报(“无效的PNR编号”);
$(“#pnr1”).val(“”);
$(“#pnr2”).val(“”);
返回;
}
如果((arr_month==dep_month&&dep_date));
$(“#会计字母打印”).fadeIn();
}
$(“#msg_box”).fadeIn(“慢”,函数(){
setTimeout('fadeOutMsgBox();',3000);
});
}); //get函数的结束
}

更改之后,突然该函数的js文件中的所有函数都停止工作,包括该函数。在搜索论坛时,我发现了这样一个讨论:它说错误可能是由于使用了保留字。但是,我在代码中找不到任何用作变量的保留字。你知道问题出在哪里吗?

你有这个:

if(pnr1!="" and pnr2!="")
应该是:

if(pnr1!="" && pnr2!="")
任何像这样的语法错误都会导致整个程序失败,请务必检查您的错误控制台,他们会很快指出原因


另一方面,尽量不要将字符串传递给,直接传递函数引用,更改如下:

setTimeout('fadeOutMsgBox();',3000);
为此:

setTimeout(fadeOutMsgBox,3000);

这将减少问题,并允许函数位于范围内的任何位置,它不必是全局的(就像使用字符串一样)。

发布
diff-u
的输出,针对两者运行。如果您在浏览器中加载并运行脚本,它将给您一条错误消息。。。
setTimeout(fadeOutMsgBox,3000);