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
          • 增加文件類型 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可能不存在為空的問題
          • 增加ValidationFactory for cache
          • 修改Validation.get()方法使用indexOf()的匹配模式,以適應(yīng)可以通過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 閱讀(5001) 評(píng)論(40)  編輯  收藏 所屬分類: 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下沒有任何問題,而使用英文原版的框架則沒有任何問題.
          2006-11-12 18:58 | Aqing[匿名]

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

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

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

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

          看來是JAVAScript的編碼問題

          謝謝你能夠把validation翻譯過來
          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è)問題,一個(gè)網(wǎng)頁,如果是以htm,html或是jsp結(jié)尾的話,都沒有沒有問題,可是,在IIS下,如果使用aspx結(jié)尾,即使這個(gè)文件不做任何其它的改動(dòng),但這個(gè)驗(yàn)證效果,就出不來了,而且會(huì)出現(xiàn)一個(gè)錯(cuò)誤:附件是一個(gè)JAVASCRIPT報(bào)錯(cuò)的提示。



          行: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é)束的字符串常量"都是由于編碼問題引起,請(qǐng)將validation_cn.js另存成與你的網(wǎng)頁相適應(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 [未登錄]  回復(fù)  更多評(píng)論   

          新版本已經(jīng)解決了這個(gè)問題,還未發(fā)布,你可以通過以下地址下載:
          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è)試過,你直接打開test.html,如果測(cè)試全部通過那就是正常的了!!
          如果以上正常但你編寫的頁面不正常,那可能是前面說的編碼問題,自己查一下
          2007-04-27 12:04 | badqiu

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

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

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

          ajax 驗(yàn)証好像有點(diǎ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)論   

          開發(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 [未登錄]  回復(fù)  更多評(píng)論   

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

          請(qǐng)問可否修改個(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 [未登錄]  回復(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ì)有問題,因?yàn)樗焕頃?huì)其他test[]
          請(qǐng)問有方法幫救嗎?我必須要把它們先放在<ul>,<li>內(nèi)呢
          2007-07-05 17:33 | Victor

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

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

          # re: 擴(kuò)展基于prototype的validation.js [未登錄]  回復(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)太大了
          我感覺在原來的擴(kuò)展就是,原來升級(jí)也沒有很大關(guān)系
          還有我感覺不要那個(gè)效果庫(kù)會(huì)好點(diǎn)
          2007-08-16 14:59 | diandian

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

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

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

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

          跟原作者相比是改動(dòng)很大,主要是原程序功能沒有這么強(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 [未登錄]  回復(fù)  更多評(píng)論   

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

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

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

          但會(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 [未登錄]  回復(fù)  更多評(píng)論   

          這個(gè)我之前也在用...
          功能上它的確是我用過之中最棒的一個(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 給了意見...vtsuper就是本人了

          除了這個(gè)calendar還有沒有其他選擇??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 [未登錄]  回復(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,不過升級(jí)之后卻不能運(yùn)行,你們有遇到這個(gè)問題嗎?是如何解決的?
          2008-01-02 16:41 | Future

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

          應(yīng)該與validation js無關(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
          主站蜘蛛池模板: 遂平县| 类乌齐县| 正镶白旗| 肥乡县| 河津市| 舞阳县| 鄂温| 云霄县| 仪征市| 丰顺县| 安仁县| 台北市| 鄂伦春自治旗| 桐柏县| 休宁县| 阿巴嘎旗| 连城县| 山阴县| 扶风县| 江门市| 木里| 贵港市| 喀什市| 江川县| 沙河市| 阳春市| 岐山县| 珲春市| 聊城市| 仪陇县| 昌平区| 岱山县| 来凤县| 竹山县| 浦北县| 嘉祥县| 襄城县| 磐石市| 阿荣旗| 西乡县| 青川县|