badqiu

          XPer
          隨筆 - 46, 文章 - 3, 評(píng)論 - 195, 引用 - 0
          數(shù)據(jù)加載中……

          擴(kuò)展基于prototype的validation.js

          validation.js是一個(gè)基于prototype表單前端驗(yàn)證工具,與其它庫(kù)相比,簡(jiǎn)單易用.
          下面是對(duì)validation的介紹
          http://tetlaw.id.au/view/blog/really-easy-field-validation-with-prototype/
          ajax
          http://ajax.org/space/start/2006-05-15/2
          http://ajax.org/space/start/2006-05-22/1

          以下是對(duì)其做的擴(kuò)展.

          • 新增驗(yàn)證:
          • 增加min-value-number驗(yàn)證,例: 最小值為10.1 = min-value-10.1
          • 增加max-value-number驗(yàn)證,例: 最大值為-100.1 = min-value--100.1
          • 增加長(zhǎng)度范圍validate-length-range-minLength-maxLength驗(yàn)證,例: 最小長(zhǎng)度為1,最大長(zhǎng)度為10:validate-length-range-1-10
          • 增加整型數(shù)字范圍validate-int-range-minValue-maxValue驗(yàn)證,例: 5至20 : validate-int-range-5-20
          • 增加浮點(diǎn)數(shù)字范圍validate-float-range-minValue-maxValue驗(yàn)證,例: 1.1至10 : validate-float-range-1.1-10
          • 增加min-length-number驗(yàn)證,例: 最小長(zhǎng)度為10 = min-length-10
          • 增加max-length-number驗(yàn)證,例: 最大長(zhǎng)度為10 = max-length-10
          • 增加文件類(lèi)型 validate-file-type1-type2-typeX 的驗(yàn)證,例: validate-file-zip-png-jpeg 將驗(yàn)證文件是否為zip,png,jpeg格式之一
          • 增加中文日期驗(yàn)證 validate-date-cn

          ?

          • 修改記錄:
          • 增加Validation._getInputValue() 取代$F()方法以對(duì)file input進(jìn)行驗(yàn)證
          • 修正Validation.isVisible() 中while循環(huán)中elm可能不存在為空的問(wèn)題
          • 增加ValidationFactory for cache
          • 修改Validation.get()方法使用indexOf()的匹配模式,以適應(yīng)可以通過(guò)class傳遞參數(shù)
          • 修改errorMsg可由方法返回

          min-length-number,max-length-number,validate-file-xx1的實(shí)現(xiàn)機(jī)制主要是直接使用className作為參數(shù)傳遞,再在驗(yàn)證方法中抽取max-length-number的number作為參數(shù)使用

          下載?http://www.aygfsteel.com/Files/badqiu/validation1.5.3.rar

          posted on 2006-10-28 11:59 badqiu 閱讀(5015) 評(píng)論(40)  編輯  收藏 所屬分類(lèi): AJAX

          評(píng)論

          # re: 擴(kuò)展基于prototype的validation.js   回復(fù)  更多評(píng)論   

          俺正需要一個(gè)JS的驗(yàn)證庫(kù)。多謝啦~
          2006-10-28 22:52 | mixlee

          # re: 擴(kuò)展基于prototype的validation.js   回復(fù)  更多評(píng)論   

          頂一個(gè)
          2006-10-30 10:06 | inlife.cn

          # re: 擴(kuò)展基于prototype的validation.js   回復(fù)  更多評(píng)論   

          good
          2006-10-30 16:13 | 不錯(cuò).

          # re: 擴(kuò)展基于prototype的validation.js   回復(fù)  更多評(píng)論   

          在Struts中使用修改以后的驗(yàn)證框架,在IE下沒(méi)有任何問(wèn)題,而使用英文原版的框架則沒(méi)有任何問(wèn)題.
          2006-11-12 18:58 | Aqing[匿名]

          # re: 擴(kuò)展基于prototype的validation.js   回復(fù)  更多評(píng)論   

          在Struts中使用修改以后的驗(yàn)證框架,在IE下沒(méi)有任何反應(yīng),而使用英文原版的框架則沒(méi)有任何問(wèn)題.
          2006-11-12 18:59 | Aqing[匿名]

          # re: 擴(kuò)展基于prototype的validation.js   回復(fù)  更多評(píng)論   

          如果JSP頁(yè)面中的編碼是utf-8,這個(gè)中文校驗(yàn)就會(huì)失效;
          如果JSP頁(yè)面中的編碼是GBK,這個(gè)中文校驗(yàn)就沒(méi)有問(wèn)題

          看來(lái)是JAVAScript的編碼問(wèn)題

          謝謝你能夠把validation翻譯過(guò)來(lái)
          2006-11-12 21:22 | Aqing[匿名]

          # re: 擴(kuò)展基于prototype的validation.js   回復(fù)  更多評(píng)論   

          在IE中出現(xiàn)錯(cuò)誤: "Unterminated string constant"
          2006-11-24 20:50 | abc

          # re: 擴(kuò)展基于prototype的validation.js   回復(fù)  更多評(píng)論   

          我發(fā)現(xiàn)在有一個(gè)問(wèn)題,一個(gè)網(wǎng)頁(yè),如果是以htm,html或是jsp結(jié)尾的話,都沒(méi)有沒(méi)有問(wèn)題,可是,在IIS下,如果使用aspx結(jié)尾,即使這個(gè)文件不做任何其它的改動(dòng),但這個(gè)驗(yàn)證效果,就出不來(lái)了,而且會(huì)出現(xiàn)一個(gè)錯(cuò)誤:附件是一個(gè)JAVASCRIPT報(bào)錯(cuò)的提示。

          說(shuō)

          行:53

          列:33

          錯(cuò)誤:末結(jié)束的字符串常量

          代碼:0

          URL:……

          2006-12-20 18:31 | hypgr

          # re: 擴(kuò)展基于prototype的validation.js   回復(fù)  更多評(píng)論   

          如果發(fā)生"Unterminated string constant"與"末結(jié)束的字符串常量"都是由于編碼問(wèn)題引起,請(qǐng)將validation_cn.js另存成與你的網(wǎng)頁(yè)相適應(yīng)的編碼即可!
          validation_cn.js默認(rèn)是GBK編碼
          2006-12-20 21:17 | badqiu

          # re: 擴(kuò)展基于prototype的validation.js   回復(fù)  更多評(píng)論   

          用ajax框架驗(yàn)證后,顯示出錯(cuò)誤提示信息,但是仍然可以提交成功。
          2007-03-09 15:40 | lly

          # re: 擴(kuò)展基于prototype的validation.js [未登錄](méi)  回復(fù)  更多評(píng)論   

          新版本已經(jīng)解決了這個(gè)問(wèn)題,還未發(fā)布,你可以通過(guò)以下地址下載:
          http://svn.javascud.org/svn/si/validation/trunk/

          下載前請(qǐng)查看ChangeLog
          2007-03-26 09:49 | badqiu

          # re: 擴(kuò)展基于prototype的validation.js   回復(fù)  更多評(píng)論   

          只能在IE中使用,不能使用FireFox瀏覽器。
          2007-04-26 13:47 | Tang Anping

          # re: 擴(kuò)展基于prototype的validation.js   回復(fù)  更多評(píng)論   

          幾種常用的瀏覽器及其版本都已經(jīng)測(cè)試過(guò),你直接打開(kāi)test.html,如果測(cè)試全部通過(guò)那就是正常的了!!
          如果以上正常但你編寫(xiě)的頁(yè)面不正常,那可能是前面說(shuō)的編碼問(wèn)題,自己查一下
          2007-04-27 12:04 | badqiu

          # re: 擴(kuò)展基于prototype的validation.js   回復(fù)  更多評(píng)論   

          當(dāng)鏈接到一個(gè)新頁(yè)面,提交的時(shí)候正常,重置和取消的時(shí)候還在驗(yàn)證,這樣就需要點(diǎn)擊兩次,因?yàn)槟愕谝淮我呀?jīng)獲得焦點(diǎn),能不能修改一下!
          2007-05-11 21:19 | Tang Anping

          # re: 擴(kuò)展基于prototype的validation.js [未登錄](méi)  回復(fù)  更多評(píng)論   

          ajax 驗(yàn)証好像有點(diǎn)問(wèn)題..和你的document不太一樣

          class='validate-ajax-validate-service.jsp'
          還是
          class='validate-ajax' validateUrl='http://localhost:8080/validate-email.jsp' validateFailedMessage='email already exists'

          我兩個(gè)方法也不行
          2007-06-25 13:10 | Victor

          # re: 擴(kuò)展基于prototype的validation.js   回復(fù)  更多評(píng)論   

          開(kāi)發(fā)版是使用前面那種進(jìn)行ajax驗(yàn)證
          后一種方法是v2.3.4版本的ajax驗(yàn)證
          源代碼svn:
          http://svn.javascud.org/svn/si/validation/trunk/
          可以下載新版本,還未正式發(fā)布
          2007-06-27 09:20 | badqiu

          # re: 擴(kuò)展基于prototype的validation.js [未登錄](méi)  回復(fù)  更多評(píng)論   

          我發(fā)覺(jué)假如使用了Validation.js後,而我的program中任何一個(gè)element id是'result'時(shí),例如<div id="result">abc</div>皆會(huì)產(chǎn)生很多奇怪的error,
          例如設(shè)了immediate=false但會(huì)無(wú)效和不停跳出一個(gè)error
          '物件不支援此屬性或方法'
          此問(wèn)題只會(huì)出現(xiàn)在IE中,FF好像正常

          我花了兩天才找到問(wèn)題所在呢......@______@
          2007-06-29 14:15 | Victor

          # re: 擴(kuò)展基于prototype的validation.js [未登錄](méi)  回復(fù)  更多評(píng)論   

          還有一個(gè)問(wèn)題..
          假如把form的class="require-validate"
          會(huì)無(wú)故執(zhí)行了focusFirstElement

          但我的form 預(yù)設(shè)是用了prototype的
          $(formID).disable...因此Validation.js強(qiáng)迫我要focusFirstElement,令我的程式一直報(bào)錯(cuò)...

          最奇怪的地方是.我發(fā)覺(jué)"require-validate"不是必須的...form沒(méi)有設(shè)class="require-validate"亦可..那為何document說(shuō)需 要設(shè)呢?
          2007-06-29 14:31 | Victor

          # re: 擴(kuò)展基于prototype的validation.js   回復(fù)  更多評(píng)論   

          通過(guò)required-validate標(biāo)記的表單是會(huì)運(yùn)行Form.focusFirstElement()方法
          你可以將這句刪除,在源代碼的最后部分Validation.autoBind()中
          2007-06-29 17:20 | badqiu

          # re: 擴(kuò)展基于prototype的validation.js [未登錄](méi)  回復(fù)  更多評(píng)論   

          那麼可以不用required-validate 而改為new Validation('frm1',{onSubmit:false});嗎??

          另外我之前提及有關(guān)<div id="result">abc</div>是否真有其事還是我自己的問(wèn)題呢???
          2007-06-29 17:37 | Victor

          # re: 擴(kuò)展基于prototype的validation.js   回復(fù)  更多評(píng)論   

          的確有這樣的問(wèn)題,還未查什么原因!
          2007-07-02 09:12 | badqiu

          # re: 擴(kuò)展基于prototype的validation.js [未登錄](méi)  回復(fù)  更多評(píng)論   

          這個(gè)<div id="result">問(wèn)題我找得發(fā)瘋了才找到.....這繼續(xù)努力
          2007-07-03 11:35 | Victor

          # re: 擴(kuò)展基于prototype的validation.js   回復(fù)  更多評(píng)論   

          已經(jīng)修正<div id="result">這個(gè)問(wèn)題,你可以從svn下載最新版本
          2007-07-05 09:01 | badqiu

          # re: 擴(kuò)展基于prototype的validation.js [未登錄](méi)  回復(fù)  更多評(píng)論   

          請(qǐng)問(wèn)可否修改個(gè)別提示的顯示位置呢???
          我的情況像這樣
          <div>
          <input type="checkbox" name="test[]"> a
          <input type="checkbox" name="test[]"> b
          <input type="checkbox" name="test[]" class="validate-one-required
          "> c
          </div>

          warnning會(huì)顯示在div內(nèi),如何個(gè)別修改其顯示位置到div外呢?
          2007-07-05 14:07 | Victor

          # re: 擴(kuò)展基于prototype的validation.js   回復(fù)  更多評(píng)論   

          可以使用
          <div id="advice-validate-one-required-test[]">
          </div>

          id的模式等于:
          advice-$validatorName-$elementId
          具體可以查看源代碼:
          1     getAdvice : function(name, elm) {
          2         return Try.these(
          3             function(){ return $('advice-+ name + '-+ ValidationUtils.getElmID(elm)) },
          4             function(){ return $('advice-+ ValidationUtils.getElmID(elm)) }
          5         );
          6     },
           
          2007-07-05 16:18 | badqiu

          # re: 擴(kuò)展基于prototype的validation.js [未登錄](méi)  回復(fù)  更多評(píng)論   

          這樣便可以做到我要的效果
          <div>
          <input type="checkbox" name="test[]"> a
          <input type="checkbox" name="test[]"> b
          <input type="checkbox" name="test[]" class="validate-one-required
          "> c
          </div>
          <div id="advice-validate-one-required-test[]"></div>


          <div>
          <ul>
          <li><input type="checkbox" name="test[]">a</li>
          <li><input type="checkbox" name="test[]">b</li>
          <li><input type="checkbox" name="test[]" class="validate-one-required">c</li>
          </ul>
          </div>
          <div id="advice-validate-one-required-test[]"></div>

          這樣的話validate-one-required會(huì)有問(wèn)題,因?yàn)樗焕頃?huì)其他test[]
          請(qǐng)問(wèn)有方法幫救嗎?我必須要把它們先放在<ul>,<li>內(nèi)呢
          2007-07-05 17:33 | Victor

          # re: 擴(kuò)展基于prototype的validation.js [未登錄](méi)  回復(fù)  更多評(píng)論   

          好像可以自行加一個(gè)定義即可...我試試看...謝謝
          2007-07-05 18:07 | Victor

          # re: 擴(kuò)展基于prototype的validation.js [未登錄](méi)  回復(fù)  更多評(píng)論   

          和各位分享一下

          ['validate-one-required-fromGrandParent', function (v,elm) {
          var p = elm.parentNode.parentNode;
          var options = p.getElementsByTagName('INPUT');
          return $A(options).any(function(elm) {
          return $F(elm);
          });
          },{ignoreEmptyValue : false}]
          2007-07-05 18:16 | Victor

          # re: 擴(kuò)展基于prototype的validation.js   回復(fù)  更多評(píng)論   

          你自己的改動(dòng)太大了
          我感覺(jué)在原來(lái)的擴(kuò)展就是,原來(lái)升級(jí)也沒(méi)有很大關(guān)系
          還有我感覺(jué)不要那個(gè)效果庫(kù)會(huì)好點(diǎn)
          2007-08-16 14:59 | diandian

          # re: 擴(kuò)展基于prototype的validation.js [未登錄](méi)  回復(fù)  更多評(píng)論   

          這點(diǎn)我也同意..
          一是選擇以擴(kuò)展形式...二是自行重新開(kāi)發(fā)一套
          2007-08-18 10:13 | Victor

          # re: 擴(kuò)展基于prototype的validation.js   回復(fù)  更多評(píng)論   

          @diandian
          效果庫(kù)不要,直接不要導(dǎo)入effects.js即可去掉效果

          跟原作者相比是改動(dòng)很大,主要是原程序功能沒(méi)有這么強(qiáng)大,只是原作者的創(chuàng)意很棒
          2007-08-21 09:36 | badqiu

          # re: 擴(kuò)展基于prototype的validation.js   回復(fù)  更多評(píng)論   

          好東西啊,頂頂頂啊!!!
          2007-09-27 16:09 | #

          # re: 擴(kuò)展基于prototype的validation.js [未登錄](méi)  回復(fù)  更多評(píng)論   

          請(qǐng)問(wèn)如何處理"日期 B 只可以大過(guò)或等於 日期A"的情況呢???
          great-than-$otherInputId
          less-than-$otherInputId
          equals-$otherInputId
          因?yàn)檫@些都不合用
          2007-09-28 12:17 | Victor

          # re: 擴(kuò)展基于prototype的validation.js [未登錄](méi)  回復(fù)  更多評(píng)論   

          請(qǐng)問(wèn)可否嘗試一下這個(gè)組合方式,因?yàn)槲野l(fā)現(xiàn)了較多的問(wèn)題,條件如下
          1.兩個(gè)日期皆需要填寫(xiě)
          2.兩個(gè)必須是日期格式
          3.前者必須大於後者
          4.把warning msg寫(xiě)在外

          但會(huì)發(fā)生錯(cuò)誤..請(qǐng)指教

          <input type="text" id="dateFrom" name="dateFrom" class="required-validate-date" value="2007-09-01" />
          to
          <input type="text" id="dateTo" name="dateTo" class="required-validate-date-great-than-dateFrom" value="2007-09-02" />
          <div id="advice-required-validate-date-dateFrom" class="validation-advice" style="display:none;"></div>
          <div id="advice-required-validate-date-great-than-dateFrom-dateTo" class="validation-advice" style="display:block"></div>

          2007-09-28 14:16 | Victor

          # re: 擴(kuò)展基于prototype的validation.js   回復(fù)  更多評(píng)論   

          @Victor
          日期可以不需要驗(yàn)證的,有一個(gè)強(qiáng)大的日期控件,可以去看一下,可以自動(dòng)糾錯(cuò),而且可以自動(dòng)限制日期的選擇。http://blog.csdn.net/My97/archive/2007/06/29/1671264.aspx
          2007-10-05 13:10 | Tang Anping

          # re: 擴(kuò)展基于prototype的validation.js [未登錄](méi)  回復(fù)  更多評(píng)論   

          這個(gè)我之前也在用...
          功能上它的確是我用過(guò)之中最棒的一個(gè),自動(dòng)化,功能齊全..
          但.....它不用class去封裝整個(gè)calendar..令到它的code經(jīng)常跟其他 Js program發(fā)生相撞的情況..
          當(dāng)配合script.aculo.us時(shí)便會(huì)有err
          我己經(jīng)在
          http://blog.csdn.net/My97/archive/2007/06/11/1647856.aspx#FeedBack 給了意見(jiàn)...vtsuper就是本人了

          除了這個(gè)calendar還有沒(méi)有其他選擇??validation.js的方向又有解決方法嗎??
          2007-10-05 13:41 | Victor

          # re: 擴(kuò)展基于prototype的validation.js   回復(fù)  更多評(píng)論   

          能夠支持struts form的使用嗎
          2007-10-24 09:11 | 四三三

          # re: 擴(kuò)展基于prototype的validation.js [未登錄](méi)  回復(fù)  更多評(píng)論   

          現(xiàn)在Prototype.js已經(jīng)升級(jí)到1.6.0_rc1了,我以前用的驗(yàn)證是基于1.5.0_rc2版本的,現(xiàn)在想把1.5.0_rc2升級(jí)到1.6.0_rc1,不過(guò)升級(jí)之后卻不能運(yùn)行,你們有遇到這個(gè)問(wèn)題嗎?是如何解決的?
          2008-01-02 16:41 | Future

          # re: 擴(kuò)展基于prototype的validation.js [未登錄](méi)  回復(fù)  更多評(píng)論   

          應(yīng)該與validation js無(wú)關(guān),升級(jí)effects.js與prototype.js至相適應(yīng)的版本即可
          2008-01-02 16:47 | badqiu

          # re: 擴(kuò)展基于prototype的validation.js   回復(fù)  更多評(píng)論   

          頂一個(gè)。
          2008-06-23 13:31 | jiankang
          主站蜘蛛池模板: 平江县| 安乡县| 张家港市| 霍林郭勒市| 安多县| 云安县| 临湘市| 云南省| 共和县| 陕西省| 霍邱县| 福鼎市| 勃利县| 牡丹江市| 灌云县| 邹平县| 霞浦县| 兰坪| 铜川市| 武定县| 庄河市| 措勤县| 潮安县| 临安市| 岳普湖县| 樟树市| 财经| 襄城县| 巴塘县| 偏关县| 梧州市| 米脂县| 西乌珠穆沁旗| 新龙县| 五家渠市| 彭泽县| 青冈县| 阿拉善右旗| 蒙城县| 牙克石市| 连云港市|