js驗(yàn)證框架之RealyEasy驗(yàn)證詳解

字號(hào):


    使用Really_easy_field_validation_with_Prototype進(jìn)行表單驗(yàn)證,具體內(nèi)容如下 
    1、第一步當(dāng)然是先引入js和css文件。
    <link href="${ ctx}/skin/css/validation.css" rel="stylesheet" type="text/css" /> 
    <script type="text/javascript" src="${ ctx}/scripts/prototype.js"></script> 
    <script type="text/javascript" src="${ ctx}/scripts/effects.js"></script> 
    <script type="text/javascript" src="${ ctx}/scripts/validation.js"></script> 
    2、然后我在頁(yè)面的開頭添加了如下代碼(我把這段代碼放在meta.jsp里的,因?yàn)槊總€(gè)jsp都在頭部包含它。)
    function afterLoaded(){ 
      if(document.all){ 
        var forms = document.forms; 
        if(forms.length > 0){ 
          for(var i = 0; i < forms.length; i++){ 
            if(forms[i]["method:save"]) 
              new Validation(forms[i]); 
          } 
        } 
        window.clearInterval(inteval); 
        inteval = null; 
      } 
    } 
    var inteval = window.setInterval("afterLoaded();", 500 );  
    3、如果要對(duì)一個(gè)輸入框進(jìn)行驗(yàn)證,只要在他的class里添加一些標(biāo)志即可。如
    代碼如下:
    <input type="text" name="payable.howMuch" value="" id="payable_howMuch"/>
    這表示這個(gè)字段必填,而且需要是數(shù)字。其他的內(nèi)容,看一下validation.js末尾的代碼就明白了。  
    4、另外我對(duì)validation.js做了點(diǎn)修改,因?yàn)槲覀兊囊粋€(gè)表單有多個(gè)submit按鈕,并且一般的只有name=method:save的按鈕被點(diǎn)擊時(shí)才需要觸發(fā)驗(yàn)證,所以修改了驗(yàn)證js。
    將原來的  
    代碼如下:
    if(this.options.onSubmit) Event.observe(this.form,'submit',this.onSubmit.bind(this),false);  
    改為了  
    代碼如下:
    if(this.options.onSubmit) Event.observe(this.form["method:save"],'click',this.onSubmit.bind(this),false);  
    這樣也存在問題,但對(duì)于我們現(xiàn)在的樣子,這個(gè)更合適些。  
    5、原來的css對(duì)按鈕等造成了影響,所以我把那些border的內(nèi)容都去掉了。 
    6、這個(gè)驗(yàn)證框架好像只考慮了一些情況,若要靈活使用還要花點(diǎn)時(shí)間具體了解了才行,還提供了callback機(jī)制,下載他的原版后,在html里可以看到演示。
    以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助