2010-12-12 6 views
0

ich diese Funktion in einer js-Datei hatte und alles funktioniert ganz gut:Hinzufügen Funktion weitere Funktionen in der js-Datei zu deaktivieren

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); 
       }); 
      }); 
} 

ich auf diese Funktion eine wenig Änderungen vorgenommen (hinzugefügt, um das ‚mobile_num‘ Variablen und ‚train_num‘, enthalten ‚wenn‘ Bedingungen sicherstellen, dass die Benutzerzahlen tritt nur und Änderungen an der jQuery bekommen Funktion), was in den folgenden Code zur Folge:

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

    //Contact Information 
    var mobile_num=$("#mobile").val(); 

     //PNR Data 
    var pnr1=$("#pnr1").val(); 
    var pnr2=$("#pnr2").val(); 

    //Train Number 
    var train_num=$("#trainnum").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 can be empty but if entered must be all numbers 
    if(pnr1!="" and pnr2!="") 
    { 
     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; 
     } 
    } 

    //Train number can be empty but if entered must be all numbers 
    if(train_num!="") 
    { 
     if(!train_num.match(numericExpression)) 
     { 
      alert("Train number must consits of digits only"); 
      $("#trainnum").val(""); 
      return; 
     } 
    } 

    //Mobile num can be empty but must be all numbers 
    if(mobile_num!="") 
    { 
     if(!mobile_num.match(numericExpression)) 
     { 
      alert("Invalid mobile number"); 
      $("#mobile_num").val(""); 
      return; 
     } 
     if(mobile_num.length!=10) 
     { 
      alert('A mobile number consists of 10 digits.Please enter again.'); 
      return; 
     } 
    } 

    if((arr_month==dep_month && dep_date<arr_date) || (dep_month<arr_month)) 
    { 
     alert('Departure date cannot be before arrival date.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+"&mobile="+mobile_num+"&train_num="+train_num; 
    $.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/>'); 
      $("#acco_letter_print").html('Download accomodation letter <a href="PDF/acco_print.php" target="_blank">here</a>'); 
      $("#acco_letter_print").fadeIn();   
       } 
     $("#msg_box").fadeIn("slow",function(){ 
      setTimeout('fadeOutMsgBox();',3000); 
       }); 
      }); //End of get function 

} 

nach den Veränderungen, die plötzlich alle Funktionen in Die js-Datei dieser Funktion funktioniert nicht mehr diese Funktion. Beim Durchsuchen des Forums habe ich folgende Diskussion gefunden: JavaScript function causing all other functions not to work inside js file, die besagt, dass der Fehler möglicherweise auf die Verwendung reservierter Wörter zurückzuführen ist. Ich kann jedoch keine reservierten Wörter finden, die in meinem Code als Variablen verwendet werden. Irgendwelche Ideen was kann das Problem?

+0

Geben Sie die Ausgabe von 'diff -u' für beide Operationen ein. –

+1

Wenn Sie das Skript in einem Browser laden und ausführen, sollte es Ihnen eine Fehlermeldung geben ... –

Antwort

2

Sie haben dies in dort:

if(pnr1!="" and pnr2!="") 

Es sollte:

if(pnr1!="" && pnr2!="") 

Alle syntaktische Fehler wie diese wird die ganze Sache scheitern, sollten Sie Ihre Fehlerkonsole für Dinge überprüfen So werden sie schnell auf die Ursache hinweisen.


Als Nebenwirkung, nicht versuchen, eine Zeichenfolge zu setTimeout() auch passieren, direkt die Funktion Referenz, ändert dies:

setTimeout('fadeOutMsgBox();',3000); 

Um dies:

setTimeout(fadeOutMsgBox,3000); 

Dieser Wille Geben Sie weniger Probleme, und erlauben Sie der Funktion, irgendwo im Umfang zu sein, muss es nicht global sein (wie es mit einer Schnur würde).

Verwandte Themen