春風博客

          春天里,百花香...

          導航

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

          統計

          公告

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

          Locations of visitors to this page

          常用鏈接

          留言簿(11)

          隨筆分類(224)

          隨筆檔案(126)

          個人軟件下載

          我的其它博客

          我的鄰居們

          最新隨筆

          搜索

          積分與排名

          最新評論

          閱讀排行榜

          評論排行榜

          網頁表單的制作和驗證過程

          網頁表單的制作和驗證過程

          在Webapp編程中程序員經常要和前臺頁面打交道,CSS,HTML和JS等都是經常需要操作的內容,對于直接用戶來說,這些就是他們印象中的整個程序,如果前臺頁面不美觀或是使用不便將影響用戶對程序的印象,因此程序員應該在前臺上投入一些精力學習是值得的,在Web2.0時代來臨之后更是如此。

          下面就是一個通用網頁表單的制作和驗證過程

          表單效果


          放置表單項的表格

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

          內外表格頁面代碼

          <html:form action="/CreateTopic.do" onsubmit="return check();">
          <!-- 外層表格,比內表格寬,以在左右留出一定空當 -->
          <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;創建新主題</b>< /td>
              
          </tr>
              
          <tr bgcolor=#236d78 height=1><td></td></tr>
              
          <tr bgcolor=#eaecf5 >
              
          <td bgcolor=#ffffff>
                
          <!-- 內置表格,居中,比外表格窄, -->
                
          <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">如果填寫的話分類必須是漢字</span></td>
                    
          </tr>
                    
          <tr valign="top">
                      
          <td>主題內容:</td>
                      
          <td valign="top"><html:textarea property="concept" rows="10" cols="30"/><font color=red>&nbsp;(必填)</font><span id="conceptMsg" class="feedbackHide">內容必須輸入</span></td>
                    
          </tr>          
                    
          <tr>
                      
          <td></td>
                      
          <td><html:submit property="submit" value="發表" /></td>
                    
          </tr>
                  
          </tbody>         
                
          </table>
                
          <!-- 內置表格結束-->
              
          </td>
            
          </tr>
            
          </table>
            
          <!-- 外層表格結束 -->
          </html:form>


          表單元素驗證出錯時的顯示文字

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

          CSS定義:

          .feedbackShow{
          visibility
          : visible;
          }

          .feedbackHide
          {
          visibility
          : hidden;
          }



          驗證函數

          <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";
              }
            }
           
           
            
          // 取得主題內容(必填字段)
            var concept=$("concept").value;
           
            
          // 主題內容非空檢查
            if(hasText(concept)==false){
              $(
          "concept").focus();
              $(
          "conceptMsg").className="feedbackShow";
              
          return false;
            }
            
          else{
              $(
          "conceptMsg").className="feedbackHide";
            }
           
            
          return true;
          }

          //-->
          </script>


          驗證效果一

          驗證效果二


          posted on 2008-03-23 17:33 sitinspring 閱讀(2925) 評論(3)  編輯  收藏 所屬分類: Web開發

          評論

          # re: 網頁表單的制作和驗證過程 2008-03-24 00:20 BeanSoft

          做好界面很費勁。不過也推薦看一下 最簡單的表單驗證框架 EasyValidation

          驗證做的比較全面 細致

          http://wiki.javascud.org/display/si/Javascript_EasyValidation  回復  更多評論   

          # re: 網頁表單的制作和驗證過程 2008-03-24 20:53 如坐春風

          @BeanSoft

          謝謝,EasyValidation 看起來確實不錯,有空我會試用的。  回復  更多評論   

          # re: 網頁表單的制作和驗證過程 2011-05-25 11:23 恩科斯

          馬克思  回復  更多評論   

          sitinspring(http://www.aygfsteel.com)原創,轉載請注明出處.
          主站蜘蛛池模板: 济源市| 灌阳县| 桐城市| 丰原市| 兴化市| 湖南省| 屯留县| 金门县| 张北县| 阳春市| 正蓝旗| 绍兴县| 新郑市| 得荣县| 读书| 曲麻莱县| 普兰店市| 菏泽市| 丰城市| 柳林县| 青海省| 霍城县| 广安市| 永新县| 申扎县| 张家港市| 楚雄市| 宁国市| 土默特右旗| 利川市| 凉城县| 武夷山市| 博乐市| 宁波市| 郸城县| 乡城县| 安宁市| 年辖:市辖区| 安达市| 镇雄县| 固原市|