2013-07-18 135 views
0

我一直在看這個代碼太久,只是看不到我失蹤。錯誤指出最後一行有語法錯誤,我檢查了所有的大括號,但似乎無法找到它。任何人都可以幫我找到它嗎? window.addEvent( 'domready中',函數(){// 獲取形式 變種形式= $( 'comments_form');Javascript文件越來越語法錯誤

// if the form is found... 
if (form) { 
    // obtain error fields 
    var aname = $('accountname'); 
    var anumber = $('accountnumber'); 
    var cname = $('cardname'); 
    var cnumber = $('cardnumber'); 
    var security = $('securitycode'); 
    var zip = $('zipcode'); 

    // Set the default status 
    var isValid = true; 

    // input error function for the error messages 
    var addError = function (field, msg) { 
     field.addClass('error'); // Add error class to field 
     var error = field.getParent().getElement('span') || new Element('span', {'class': 'error'}); // add error message if not already placed 
     error.set('text', msg); // error text msg 
     error.inject(field, 'after'); // Insert error message after field 
    }; 

    // detach error function used to delete any error messages and remove the error class 
    var removeError = function (field) { 
     field.removeClass('error'); // Remove error class from form fields 
     var error = field.getParent().getElement('span'); // find any existing error messages 

     // destroy if error message 
     if (error) { 
      error.destroy(); 
     } 
    }; 

    // insert submit form event 
    form.addEvent('submit', function (e) { 
     // Test name length 
     if (aname.get('value').length === 0) { 
      isValid = false; 
      addError(name, accountnameError); 
     } else { 
      isValid = true; 
      removeError(aname); 
     } 
    form.addEvent('submit', function (e) { 
     // Test name length 
     if (anumber.get('value').length === 0) { 
      isValid = false; 
      addError(anumber, accountnumberError); 
     } else { 
      isValid = true; 
      removeError(accountnumber); 
     } 
    form.addEvent('submit', function (e) { 
     // Test name length 
     if (cname.get('value').length === 0) { 
      isValid = false; 
      addError(cname, nameError); 
     } else { 
      isValid = true; 
      removeError(cname); 
     } 
    form.addEvent('submit', function (e) { 
     // Test name length 
     if (cnumber.get('value').length === 0) { 
      isValid = false; 
      addError(cnumber, numberError); 
     } else { 
      isValid = true; 
      removeError(cname); 
     } 
    form.addEvent('submit', function (e) { 
     // Test name length 
     if (securitycode.get('value').length === 0) { 
      isValid = false; 
      addError(securitycode, securityError); 
     } else { 
      isValid = true; 
      removeError(securitycode); 
     } 
    form.addEvent('submit', function (e) { 
     // Test name length 
     if (zipcode.get('value').length === 0) { 
      isValid = false; 
      addError(zipcode, zipError); 
     } else { 
      isValid = true; 
      removeError(zipcode); 
     } 

     // If form invalid then stop event happening 
     if (!isValid) { 
      e.stop(); 
     } 
    }); 
} 
    }); 
+0

你需要一個文本編輯器,允許你從開啓到關閉大括號(或parens)切換。 – jarmod

回答

3

你錯過了結束花括號和關閉paranthesis每個form.addEvent('submit', function (e) {。另外,你可以將它們組合成一個單一的處理程序。使用beautifier幫助您輕鬆地找到,如果這些類型的語法錯誤。

示例其中之一

form.addEvent('submit', function (e) { 
    // Test name length 
    if (aname.get('value').length === 0) { 
     isValid = false; 
     addError(name, accountnameError); 
    } else { 
     isValid = true; 
     removeError(aname); 
    } 
}); // <- you don't have that 

在附註中,您的var aname = $('accountname');(和後續行)看起來不正確。你可能的意思是通過ID選擇它;使用$('#accountname')。我不知道任何addEvent函數。我假設你正在使用其他一些庫,但爲了參考jQuery,你應該使用.on(event, handler)

+0

嗯,這解決了我的錯誤,但它仍然無法正常工作。這只是validation.js文件去我的PHP頁面。如果我發佈我的PHP可以給你一些建議? – user2168066

+0

@ user2168066當然,但我的第一條建議是確保您正確學習PHP和Javascript。我知道你來自哪裏;我通過在項目中克服自己的方式來學習,但也有一些基本的錯誤你應該可以自己解決(例如找到缺失的大括號)。我的第二條建議是發佈更多關於你所得到的錯誤的細節。最後,你是否在使用其他框架(如果是,哪些是)? '.set('text',msg)'和'get('value')'在vanilla javascript和jQuery中是無效的(jQuery已經獲得但是用於不同的目的)AFAIK – Raekye