jQuery學習之路(5)- 簡單的表單應用

来源:http://www.cnblogs.com/qqandfqr/archive/2016/12/16/6185383.html
-Advertisement-
Play Games

▓▓▓▓▓▓ 大致介紹 接下來的這幾個博客是對前面所學知識的一個簡單的應用,來加深理解 ▓▓▓▓▓▓ 單行文本框 只介紹一個簡單的樣式:獲取和失去焦點改變樣式 基本結構: 在CSS中添加一個類為focus的樣式 然後為文本框添加獲取和失去焦點事件 效果: ▓▓▓▓▓▓ 多行文本框應用 1、高度變化 ...


▓▓▓▓▓▓ 大致介紹

    接下來的這幾個博客是對前面所學知識的一個簡單的應用,來加深理解

 

▓▓▓▓▓▓ 單行文本框

    只介紹一個簡單的樣式:獲取和失去焦點改變樣式

    基本結構:

 1     <form action="#" method="post" id="regFrom">
 2         <fieldset>
 3             <legend>個人基本信息</legend>
 4             <div>
 5                 <label for="username">名稱:</label>
 6                 <input id="username" type="text" />
 7             </div>
 8             <div>
 9                 <label for="pass">密碼:</label>
10                 <input id="pass" type="passward" />
11             </div>
12             <div>
13                 <label for="msg">詳細信息:</label>
14                 <textarea id="msg" ></textarea>
15             </div>
16         </fieldset>
17     </form>

  

    在CSS中添加一個類為focus的樣式

1         .focus{
2             border: 1px solid #f00;
3             background: #fcc;
4         }

    

    然後為文本框添加獲取和失去焦點事件

1     $(function(){
2         $(':input').focus(function(){
3             $(this).addClass('focus');
4         }).blur(function(){
5             $(this).removeClass('focus');
6         });
7     });

    效果:

 

▓▓▓▓▓▓ 多行文本框應用

    1、高度變化

    改變多行文本框的高度

    基本結構:

 1     <form action="#" method="POST" id="regFrom">
 2         <div class="msg">
 3             <div class="msg_caption">
 4                 <span class="bigger">放大</span>
 5                 <span class="small">縮小</span>
 6             </div>
 7             <div>
 8                 <textarea id="comment" rows="8" cols="20">
 9                     多行文本框,多行文本框,多行文本框,多行文本框,多行文本框,多行文本框,多行文本框,多行文本框,多行文本框,多行文本框,多行文本框,多行文本框,多行文本框,多行文本框,多行文本框,多行文本框,多行文本框,多行文本框,多行文本框,
10                 </textarea>
11             </div>
12         </div>
13     </form>

 

    要實現的功能:

      1、當單擊“放大”按鈕後,如果評論框的高度小於500px,則在原有的高度的基礎上增加50px

      1、當單擊“縮小”按鈕後,如果評論框的高度大於50px,則在原有的高度的基礎上減少50px

 

    添加事件:

 1     $(function(){
 2         var $comment = $('#comment');
 3         $('.bigger').click(function(){
 4             if($comment.height() < 500){
 5                 $comment.height( $comment.height() + 50 );
 6             }
 7         });
 8         $('.small').click(function(){
 9             if($comment.height() > 50){
10                 $comment.height( $comment.height() - 50 ); 
11             }
12         });
13     });

 

    效果:

     

    2、滾動條高度變化

    添加事件:

 1     $(function(){
 2         var $comment = $('#comment');
 3         $('.bigger').click(function(){
 4             if(!$comment.is(':animated')){
 5                 $comment.animate({scrollTop : '-=50'},400);
 6             }
 7         });
 8         $('.small').click(function(){
 9             if(!$comment.is(':animated')){
10                 $comment.animate({scrollTop : '+=50'},400);
11             }
12         });
13     });

    效果:

 

▓▓▓▓▓▓ 覆選框應用

    對覆選框的基本應用,就是對覆選框進行全選、反選和全部選等操作

    基本樣式:

 1     <form action="#" method="POST" id="regFrom">
 2         <p>你愛好的運動</p>
 3         <input type="checkbox" name="items" value="足球" />足球
 4         <input type="checkbox" name="items" value="籃球" />籃球
 5         <input type="checkbox" name="items" value="羽毛球" />羽毛球
 6         <input type="checkbox" name="items" value="乒乓球" />乒乓球
 7         <br />
 8         <input type="button" id="CheckedAll" value="全 選" />
 9         <input type="button" id="CheckedNo" value="全不選" />
10         <input type="button" id="CheckedRev" value="反 選" />
11         <input type="button" id="send" value="提 交" />
12     </form>

 

    添加全選按鈕和全不選事件

1         $('#CheckedAll').click(function(){
2             $('[name=items]:checkbox').attr('checked',true);
3         });
4 
5         $('#CheckedNo').click(function(){
6             $('[name=items]:checkbox').attr('checked',false);
7         });

 

    添加反選事件

        $('#CheckedRev').click(function(){
            $('[name=items]:checkbox').each(function(){
                this.checked = !this.checked;
            });
        });

 

    添加提交事件:輸出選中的值

1         var str = "你選中的是:\r\n";
2         $('#send').click(function(){
3             
4             $('[name=items]:checkbox:checked').each(function(){
5                 str += $(this).val() + "\r\n";
6             });
7             alert(str);
8         });

    效果:

 

▓▓▓▓▓▓ 下拉框應用

    基本結構:

 1     <div class="centent">
 2         <select multiple id="select1" style="width:100px;height:160px;">
 3             <option value="1" >選項1</option>
 4             <option value="2" >選項2</option>
 5             <option value="3" >選項3</option>
 6             <option value="4" >選項4</option>
 7             <option value="5" >選項5</option>
 8             <option value="6" >選項6</option>
 9             <option value="7" >選項7</option>
10             <option value="8" >選項8</option>
11         </select>
12         <div>
13             <span id="add">選中添加到右邊&gt;&gt;</span><br />
14             <span id="add_all">全部添加到右邊&gt;&gt;</span>
15         </div>
16     </div>
17     <div class="centent">
18         <select multiple id="select2" style="width:100px;height:160px;"></select>
19         <div>
20             <span id="remove">&lt;&lt;選中刪除到左邊</span><br />
21             <span id="remove_all">&lt;&lt;全部刪除到左邊</span>
22         </div>
23     </div>

 

    實現的功能:

      1、將選中的選項添加給對方

1         $('#add').click(function(){
2             var $options = $('#select1 option:selected');
3             $options.appendTo($('#select2'));
4         });

 

      2、全部的選項添加給對方

        $('#add_all').click(function(){
            var $options = $('#select1 option');
            $options.appendTo($('#select2'));
        });

 

      3、雙擊某個按鈕將其添加給對方

1         $('#select1').dblclick(function() {
2             var $options = $('option:selected');
3             $options.appendTo($('#select2'));
4         });

    效果:

 

▓▓▓▓▓▓ 表單應用

    基本結構:

 1     <form methos="post" action="">
 2         <div class="int">
 3             <label for="username">用戶名</label>
 4             <input type="text" id="username" class="required" />
 5         </div>
 6         <div class="int">
 7             <label for="email">郵箱</label>
 8             <input type="text" id="email" class="required" />
 9         </div>
10         <div class="int">
11             <label for="personinfo">個人資料</label>
12             <input type="text" id="personinfo"  />
13         </div>
14         <div class="sub">
15             <input type="submit" value="提交" id="send" />
16             <input type="reset" id="red" />
17         </div>
18 
19     </form>

 

    驗證用戶輸入的是否正確

 1         $('form :input').blur(function(){
 2             var $parent = $(this).parent();
 3             // 刪除以前的提示元素
 4             $parent.find(".formtips").remove();
 5             // 驗證用戶名
 6             if($(this).is('#username')){
 7                 if(this.value == '' || this.value.length < 6){
 8                     var errorMsg = '請輸入至少6位的用戶名';
 9                     $parent.append('<span class="formtips onError">'+errorMsg+' </span>');
10                 }else{
11                     var okMsg = '輸入正確';
12                     $parent.append('<span class="formtips onSuccess">'+okMsg+'</span>');
13                 }
14             }
15 
16             // 驗證郵箱
17             if($(this).is('#email')){
18                 if(this.value == '' || (this.value != "" && !/.+@.+\.[a-zA-Z] {2,4}$/.test(this.value))){
19                     var errorMsg = '請輸入正確的E-Mail地址';
20                     $parent.append('<span class="formtips onError">'+errorMsg+' </span>');
21                 }else{
22                     var okMsg = '輸入正確';
23                     $parent.append('<span class="formtips onSuccess">'+okMsg+'</span>');
24                 }
25             }
26 
27         });

 

 

    提交按鈕綁定事件

1             // 提交按鈕
2             $('#send').click(function(){
3                 $('form .required:input').trigger('blur');
4                 var numError = $('form .onError').length;
5                 if(numError){
6                     return false;
7                 }
8                 alert("註冊成功");
9             });

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 1. 引言 正如我們所知,NGINX採用了非同步、事件驅動的方法來處理連接。這種處理方式無需(像使用傳統架構的伺服器一樣)為每個請求創建額外的專用進程或者線程,而是在一個工作進程中處理多個連接和請求。為此,NGINX工作在非阻塞的socket模式下,並使用了epoll 和 kqueue這樣有效的方法。 ...
  • 獲取下載地址 QQ 313596790 A 調用攝像頭拍照,自定義裁剪編輯頭像 B 集成代碼生成器 [正反雙向](單表、主表、明細表、樹形表,開發利器)+快速構建表單; 技術:313596790freemaker模版技術 ,0個代碼不用寫,生成完整的一個模塊,帶頁面、建表sql腳本,處理類,serv ...
  • 1、導語 編程思想之於軟體開發,正如建築結構之於一磚一瓦。不同的編程思想對於軟體如何構在某些地方略有相似,在很多地方又有著顯著的差異,而這些差異不僅僅在於語言的不同,而是編程開發思想的區別。本片文章將分別介紹結構化方法中的結構化設計和結構化分析,面向對象方法中的面向對象分析並分別總結優缺點。 2、結 ...
  • 命令模式:將請求封裝成對象,以便使用不同的請求、隊列或者日誌來參數化其它對象。 命令對象:通過在特定接收者上綁定一組動作來封裝一個請求。要達到這一點,命令對象將動作和接收者包進對象中,只暴露出一個execute()方法,這方法被調用的時候,接收者就會執行這些動作。 實現命令介面(所有的命令對象都必須 ...
  • 單例模式必須只有一個實例,並且提供一個全局訪問方法。 解析經典單利模式實例: 1 package designPatterns; 2 3 public class Singleton { 4 5 //利用一個靜態變數來記錄類的唯一實例 6 7 private static Singleton uni ...
  • 如果你是一名建築工人, 現在要建一棟十幾層的樓房, 你會按照什麼樣的一個順序去建造呢? 正常來說, 肯定是先打地基, 然後在此基礎上, 建一層, 建第二層 ...... , 就現在中國的科技來說, 還沒有說, 可以先建頂層, 再打地基, 在建倒數第二層, 這樣一種隨心所欲的建造方法來實現吧. 說白了 ...
  • 通過 CSS3,我們能夠創建動畫,這可以在許多網頁中取代動畫圖片、Flash 動畫以及 JavaScript。 CSS3 動畫 CSS3 動畫 CSS3 @keyframes 規則 如需在 CSS3 中創建動畫,您需要學習 @keyframes 規則。 @keyframes 規則用於創建動畫。在 @ ...
  • 過程概述 瀏覽器查找功能變數名稱對應的 IP 地址; 瀏覽器根據 IP 地址與伺服器建立 socket 連接; 瀏覽器與伺服器通信: 瀏覽器請求,伺服器處理請求; 瀏覽器與伺服器斷開連接。 以下為詳細解析: 根據功能變數名稱查找 IP 地址 概念解釋 IP 地址:IP 協議為互聯網上的每一個網路和每一臺主機分配的一 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...