2012-07-20 92 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); 
相关问题