2012-07-20 44 views
0

我創建了一個簡單的JavaScript函數來驗證它使用的mootools的Facebook應用程序的工作創造了一個形式的MooTools的細體形式:如何我自己的驗證代碼添加到

的Facebook comepetition應用Click here

原始驗證是使用HTML5完成的,但是因爲這在所有瀏覽器中都不起作用,所以我不得不嘗試並提出一些意見!所以我創建了一個簡單的JavaScript函數,我知道它的工作原理,但我有麻煩讓它與mootools lightface一起工作,因爲我有驗證工作onClick提交按鈕,但與lightface插件我沒有得到選擇做到這一點提交按鈕是獨立定義的,如果有意義的話?

我無法弄清楚如何在這裏上傳的代碼,但如果你去鏈接,然後選擇「查基」作爲答案,你會看到的形式顯示出來,並可以從那裏查看框架的源代碼!

這裏是我的驗證代碼:

function validate(form) { 
    var fail = false; 
    var name = document.getElementById("full_name"); 

    if (name.value.length == 0) { 
     document.getElementById("okName").className = "fail"; 
     fail = true; 
    }else{ 
     document.getElementById("okName").className = "success"; 
    } 



    var email = document.getElementById("email"); 
    var emailPattern = /^[a-zA-Z0-9._-][email protected][a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/; 

    if (email.value.length == 0 || !emailPattern.test(email.value)) { 
     document.getElementById("okEmail").className = "fail"; 
     fail = true; 
    }else{ 
     document.getElementById("okEmail").className = "success"; 
    } 



    var phone = document.getElementById("phone"); 
    var phonePattern = /^\+?[0-9]{0,15}$/ ; 

    if (phone.value.length == 0 || !phonePattern.test(phone.value)) { 
     document.getElementById("okPhone").className = "fail"; 
     fail = true; 
    }else{ 
     document.getElementById("okPhone").className = "success"; 
    } 

    if (fail) { 
     alert("You didn't fill out all inputs"); 
    } else { 
     alert("Everything OK"); 
    } 
}//End of validation function 

所有我想基本上是通過這種方法來MooTools的如果可能的話提交按鈕?

回答

0

你真的應該給Form.Validator一個旋轉(來自mootools-more)。

附帶一堆預製驗證器以及自己定義驗證器的能力。

http://mootools.net/docs/more/Forms/Form.Validator

還,如果您使用的mootools,你可能想留在API中。

  • document.getElementById() - >document.id()
  • element.value - >element.get('value')
  • element.addClass('validation-failed')
  • element.toggleClass('validation-failed')
  • element.hasClass('validation-failed')
  • element.property = value - >element.set('property', value);

如果此功能是爲了在提交事件上運行,你可能要改變它,所以它一定的形式上下文(this)與變元爲event,你可以停下來。

function validate(event) { 
    var fail = false; 

    // logic. 


    if (fail) { 
     event && event.stop && event.stop(); 
     return false; 
    } 
    this.submit(); 
} 

document.id('someform').addEvent('submit', validate); 
相關問題