春風(fēng)博客

          春天里,百花香...

          導(dǎo)航

          <2008年3月>
          2425262728291
          2345678
          9101112131415
          16171819202122
          23242526272829
          303112345

          統(tǒng)計(jì)

          公告

          MAIL: junglesong@gmail.com
          MSN: junglesong_5@hotmail.com

          Locations of visitors to this page

          常用鏈接

          留言簿(11)

          隨筆分類(224)

          隨筆檔案(126)

          個(gè)人軟件下載

          我的其它博客

          我的鄰居們

          最新隨筆

          搜索

          積分與排名

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          網(wǎng)頁(yè)表單的制作和驗(yàn)證過(guò)程

          網(wǎng)頁(yè)表單的制作和驗(yàn)證過(guò)程

          在Webapp編程中程序員經(jīng)常要和前臺(tái)頁(yè)面打交道,CSS,HTML和JS等都是經(jīng)常需要操作的內(nèi)容,對(duì)于直接用戶來(lái)說(shuō),這些就是他們印象中的整個(gè)程序,如果前臺(tái)頁(yè)面不美觀或是使用不便將影響用戶對(duì)程序的印象,因此程序員應(yīng)該在前臺(tái)上投入一些精力學(xué)習(xí)是值得的,在Web2.0時(shí)代來(lái)臨之后更是如此。

          下面就是一個(gè)通用網(wǎng)頁(yè)表單的制作和驗(yàn)證過(guò)程

          表單效果


          放置表單項(xiàng)的表格

          將表單項(xiàng)放在表格中是常用的做法,這次也不例外。這里為了美觀制作了兩個(gè)嵌套表格,外表格兩行一列,分別放置表單說(shuō)明文字和內(nèi)表格;內(nèi)表格放置表單元素等。這里還讓內(nèi)表格比外表格略窄,并在外表格中居中,以在左右留出一些空擋。另外對(duì)外表格的邊框和顏色進(jìn)行設(shè)置使效果更加美觀。
          內(nèi)外表格頁(yè)面代碼如下:

          內(nèi)外表格頁(yè)面代碼

          <html:form action="/CreateTopic.do" onsubmit="return check();">
          <!-- 外層表格,比內(nèi)表格寬,以在左右留出一定空當(dāng) -->
          <table style="border-right: 1px solid; border-top: 1px solid; border-left: 1px solid; border-bottom: 1px solid; boder_top: 0px" bordercolor="#236d78" cellspacing="0" cellpadding="0" width="630" align="center" border="0">
              
          <tr bgcolor="#eaecf5" height="25">
              
          <td colspan=3>&nbsp;<font face=webdings color=#ff8c00>8</font><b>&nbsp;創(chuàng)建新主題</b>< /td>
              
          </tr>
              
          <tr bgcolor=#236d78 height=1><td></td></tr>
              
          <tr bgcolor=#eaecf5 >
              
          <td bgcolor=#ffffff>
                
          <!-- 內(nèi)置表格,居中,比外表格窄, -->
                
          <table width=560 align=center border=0>
                  
          <tbody>
                    
          <tr>
                      
          <td colspan="2"><html:hidden property="pid" value="<%=pid%>"/></td>
                    
          </tr>
                    
          <tr>
                      
          <td width=70>主題名:</td>
                      
          <td><html:text property="name" size="20" maxlength="20"/><font color=red>&nbsp;(必填)</font><span id="nameMsg" class="feedbackHide">主題必須輸入</span></td>
                    
          </tr>
                    
          <tr>
                      
          <td width=70>主題分類:</td>
                      
          <td><input type="text" name="topicclass"/><span id="topicclassMsg" class="feedbackHide">如果填寫(xiě)的話分類必須是漢字</span></td>
                    
          </tr>
                    
          <tr valign="top">
                      
          <td>主題內(nèi)容:</td>
                      
          <td valign="top"><html:textarea property="concept" rows="10" cols="30"/><font color=red>&nbsp;(必填)</font><span id="conceptMsg" class="feedbackHide">內(nèi)容必須輸入</span></td>
                    
          </tr>          
                    
          <tr>
                      
          <td></td>
                      
          <td><html:submit property="submit" value="發(fā)表" /></td>
                    
          </tr>
                  
          </tbody>         
                
          </table>
                
          <!-- 內(nèi)置表格結(jié)束-->
              
          </td>
            
          </tr>
            
          </table>
            
          <!-- 外層表格結(jié)束 -->
          </html:form>


          表單元素驗(yàn)證出錯(cuò)時(shí)的顯示文字

          表單元素是需要進(jìn)行驗(yàn)證的,當(dāng)驗(yàn)證出錯(cuò)時(shí)需要顯示出錯(cuò)信息提示用戶,上面代碼中的<span id=“topicclassMsg” class=“feedbackHide”>如果填寫(xiě)的話分類必須是漢字</span>就是出錯(cuò)提示文字,正確時(shí)這段文字不可見(jiàn),出錯(cuò)時(shí)將span的類名改為feedbackShow即可。
          將提示文字寫(xiě)在頁(yè)面而不是JS中有利于把內(nèi)容和行為分離,當(dāng)然具體怎么選擇要看你的個(gè)人喜好。

          CSS定義:

          .feedbackShow{
          visibility
          : visible;
          }

          .feedbackHide
          {
          visibility
          : hidden;
          }



          驗(yàn)證函數(shù)

          <script LANGUAGE="JavaScript">
          <!
          /**
          * text has text Check
          */
          function hasText(str){
            
          return str.length>0;
          }
          function $(id){
               
          return document.getElementById(id);
          }
          /**
          * Character Check
          */
          function isCharacter(str){
            
          var regex=new RegExp("^[\u4E00-\u9FA5]+$");
            
          return regex.test(str);
          }

          /**
          * 新建主題前檢查
          */
          function check(){
            
          // 取得主題名(必填字段)
            var name=$("name").value;

            
          // 主題名非空檢查
            if(hasText(name)==false){
              $(
          "name").focus();
              $(
          "nameMsg").className="feedbackShow";
              
          return false;
            }
            
          else{
              $(
          "nameMsg").className="feedbackHide";
            }
          // 取得主題分類(非必填字段)
            var topicclass=$("topicclass").value;

            
          // 主題分類非空檢查
            if(hasText(topicclass)==true){
              
          if(isCharacter(topicclass)==false){
                $(
          "topicclass").focus();
                $(
          "topicclassMsg").className="feedbackShow";
                
          return false;
              }
              
          else{
                $(
          "topicclassMsg").className="feedbackHide";
              }
            }
           
           
            
          // 取得主題內(nèi)容(必填字段)
            var concept=$("concept").value;
           
            
          // 主題內(nèi)容非空檢查
            if(hasText(concept)==false){
              $(
          "concept").focus();
              $(
          "conceptMsg").className="feedbackShow";
              
          return false;
            }
            
          else{
              $(
          "conceptMsg").className="feedbackHide";
            }
           
            
          return true;
          }

          //-->
          </script>


          驗(yàn)證效果一

          驗(yàn)證效果二


          posted on 2008-03-23 17:33 sitinspring 閱讀(2934) 評(píng)論(3)  編輯  收藏 所屬分類: Web開(kāi)發(fā)

          評(píng)論

          # re: 網(wǎng)頁(yè)表單的制作和驗(yàn)證過(guò)程 2008-03-24 00:20 BeanSoft

          做好界面很費(fèi)勁。不過(guò)也推薦看一下 最簡(jiǎn)單的表單驗(yàn)證框架 EasyValidation

          驗(yàn)證做的比較全面 細(xì)致

          http://wiki.javascud.org/display/si/Javascript_EasyValidation  回復(fù)  更多評(píng)論   

          # re: 網(wǎng)頁(yè)表單的制作和驗(yàn)證過(guò)程 2008-03-24 20:53 如坐春風(fēng)

          @BeanSoft

          謝謝,EasyValidation 看起來(lái)確實(shí)不錯(cuò),有空我會(huì)試用的。  回復(fù)  更多評(píng)論   

          # re: 網(wǎng)頁(yè)表單的制作和驗(yàn)證過(guò)程 2011-05-25 11:23 恩科斯

          馬克思  回復(fù)  更多評(píng)論   

          sitinspring(http://www.aygfsteel.com)原創(chuàng),轉(zhuǎn)載請(qǐng)注明出處.
          主站蜘蛛池模板: 中卫市| 当雄县| 昌吉市| 新建县| 岳西县| 洱源县| 延寿县| 丰原市| 广安市| 桐乡市| 济南市| 西乌珠穆沁旗| 沾化县| 田阳县| 新营市| 南木林县| 石楼县| 凌海市| 万年县| 衡阳市| 同心县| 壤塘县| 榕江县| 绥阳县| 沾化县| 康保县| 英吉沙县| 应用必备| 岳西县| 左贡县| 舞钢市| 宁波市| 墨竹工卡县| 富顺县| 翁牛特旗| 竹北市| 和顺县| 武陟县| 佛山市| 兰坪| 新昌县|