日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

在本教程中,我們將了解如何向現代瀏覽器提供 HTML5 表單,同時通過混合使用Webforms2、Modernizr、jQuery UI 和各種 jQuery 插件。


簡介

HTML5 支持的表單提供了大量語義標記,并且消除了對大量 JavaScript 的需求。

塊引用>

針對 HTML5 的第一個努力是 WHATWG 的 Web Forms 2.0,最初稱為 XForms Basic。該規范引入了新的表單控件和驗證等。后來,它被合并到 HTML5 中,并隨后刪除了重復模型,形成了我們今天所知的 HTML5 表單。

不幸的是,一直存在的向后兼容性問題仍然是一個令人頭痛的問題。開發人員必須面對可怕的 Internet Explorer,正如您可能已經猜到的那樣,它沒有為表單的最新進展提供太多支持 – 即使在 IE9 的最新可用測試版中也是如此。舊版本的 IE? Fagetaboutit。

盡管如此,我們想要使用這些新功能,并且我們會使用它們!今天,我們將看看其中一些新元素。我們將檢查瀏覽器是否支持這些功能,如果不支持,則使用 CSS 和 JavaScript 提供后備。


工具:現代化工具

我們將僅向不支持 HTML5 表單或其某些部分的瀏覽器提供后備方案。但正確的技術不是依賴瀏覽器嗅探,而是使用特征檢測。我們將使用流行的 Modernizr 庫。

Modernizr 是一個小型 JavaScript 庫,用于針對大量 HTML5 和 CSS3 功能測試當前瀏覽器。

如果您想了解有關 Modernizr 的更多信息,您可以查看 Tuts+ Marketplace 上提供的“Modernizr 視頻速成課程”高級教程。

塊引用>


工具:Webforms2

Webforms2 是 Weston Ruter 的 JavaScript 庫,它提供了 HTML5 表單“先前”版本(即“WHATWG Web Forms 2.0”規范)的跨瀏覽器實現。

我們將使用它來驗證和擴展當前元素的功能。

<script type="text/javascript" src="webforms2/webforms2-p.js"></script>

登錄后復制


小部件:滑塊

規范將范圍輸入描述為一種不精確的控件,用于將元素的值設置為表示數字的字符串

<input type="range" name="slider">

登錄后復制

以下是它在 Opera 10.63 中的預覽:

為了為其他瀏覽器提供后備,我們將使用 jQuery UI 的滑塊小部件。

首先,我們創建初始化函數,該函數從輸入范圍元素創建滑塊。

var initSlider = function() {			
	$('input[type=range]').each(function() {
		var $input = $(this);
		var $slider = $('<div id="' + $input.attr('id') + '" class="' + $input.attr('class') + '"></div>');
		var step = $input.attr('step');
		
		$input.after($slider).hide();
						
		$slider.slider({
			min: $input.attr('min'),
			max: $input.attr('max'),
			step: $input.attr('step'),
			change: function(e, ui) {
				$(this).val(ui.value);
			}
		});
	});
};

登錄后復制

我們為每個范圍輸入創建一個新的 <div> 元素,并調用該節點上的滑塊。這是因為直接在輸入元素上調用 jQuery UI 的滑塊將無法工作。

請注意,我們從輸入中獲取屬性,例如 min、max step、,然后將它們用作滑塊的參數。這有助于我們的后備滑塊在功能上模仿真正的 HTML5 滑塊。

接下來,我們將使用 Modernizr 來確定當前瀏覽器是否支持此輸入類型。 Modernizr 將類添加到文檔元素 (html),允許您在樣式表中定位特定的瀏覽器功能。它還創建一個自標題的全局 JavaScript 對象,其中包含每個功能的屬性:如果瀏覽器支持它,則該屬性將計算為 true,如果不支持,它將為 false

有了這些知識,為了檢測對輸入類型的支持,我們將使用 Modernizr.inputtypes[type]

if( !Modernizr.inputtypes.range ){
	$(document).ready( initSlider );
};

登錄后復制

如果不支持范圍輸入,我們將 initSlider 函數附加到 jQuery 的 document.ready ,以在頁面加載后初始化我們的函數。

這就是滑塊在沒有對范圍輸入的本機支持的瀏覽器中的外觀。


小部件:數字微調器

引用馬克·皮爾格林的話:

詢問電話號碼比詢問電子郵件地址或網址更棘手。

這就是為什么我們提供了一個專門處理數字的單獨表單控件:數字微調器,也稱為數字步進器。

<input type="number" value="2">

登錄后復制

在撰寫本文時,它受到 Opera 和基于 Webkit 的瀏覽器的支持;這是 Opera 10.6 的快照。

因為 jQuery 不提供數字微調器,所以我們將使用 Brant Burnett 的 jQuery 插件,該插件構建為 jQuery UI 小部件。

我們實現了與之前相同的技術;構建函數來創建微調器,使用 Modernizr 進行測試,并將函數附加到 $(document).ready

var initSpinner = function() {			
	$('input[type=number]').each(function() {
		var $input = $(this);
		$input.spinner({
			min: $input.attr('min'),
			max: $input.attr('max'),
			step: $input.attr('step')
		});
	});
};

if(!Modernizr.inputtypes.number){
	$(document).ready(initSpinner);
};

登錄后復制

由于數字輸入還支持 min、maxstep,因此我們從字段中獲取屬性,并將它們用作初始化數字微調器插件的參數。

我們的后備小部件如下所示:


小部件:日期選擇器

至少有六種輸入類型可用作日期選擇器。

date

一周
時間
日期時間和
和本地日期時間

在撰寫本文時,唯一正確支持它們的瀏覽器是 Opera 9+ 版本。

<input type="date">
<input type="month">
<input type="week">
<input type="time">
<input type="datetime">
<input type="datetime-local">

登錄后復制

目前,我們將僅使用 jQuery UI Datepicker 為 date 輸入提供后備。請隨意使用任何其他插件來完全模仿您的實現中的 HTML5 日期選擇器輸入的功能。

var initDatepicker = function() {
	$('input[type=date]').each(function() {
		var $input = $(this);
		$input.datepicker({
			minDate: $input.attr('min'),
			maxDate: $input.attr('max'),
			dateFormat: 'yy-mm-dd'
		});
	});
};

if(!Modernizr.inputtypes.date){
	$(document).ready(initDatepicker);
};

登錄后復制


小部件:顏色選擇器

目前,沒有瀏覽器提供對顏色 input 的支持。因此,在他們趕上之前,他們都需要使用我們的后備技術。

<input type="color">

登錄后復制

我們將使用 Stefan Petre 的 ColorPicker jQuery 插件,因為 jQuery UI 尚未提供基礎包。

var initColorpicker = function() {
	$('input[type=color]').each(function() {
		var $input = $(this);
		$input.ColorPicker({
			onSubmit: function(hsb, hex, rgb, el) {
				$(el).val(hex);
				$(el).ColorPickerHide();
			}
		});
	});			
};

if(!Modernizr.inputtypes.color){
	$(document).ready(initColorpicker);
};

登錄后復制

我們的結果:


輸入類型:搜索

新的 search 輸入類型隱式用于語義,但將來可以提供許多有趣的功能。

<input type="search">

登錄后復制

目前,只有基于 Webkit 的瀏覽器提供對此功能的支持。該規范還支持 results 屬性以在下拉列表中顯示多個搜索術語。

在 OS X 上的 Safari 上,它應該如下所示:

其余瀏覽器將其顯示為標準文本字段,因此您可以放心地將其與標準標記一起使用。


輸入類型:URL 和電子郵件

這兩種輸入類型 urlemail 用于驗證目的。它們在移動瀏覽器中特別有用,可以更改屏幕鍵盤布局以適應焦點領域。這已經在 iOS(iPhone、iPad、iPod)和某些版本的 Android 上的 Safari 中實現。

<input type="email">
<input type="url">

登錄后復制

這些輸入類型可以通過Webforms2在其他瀏覽器中實現。

您可以在新項目中自由使用這些類型,因為它們會回退到簡單的文本框。在您的手機上,如果您向輸入提供這些類型,您會發現鍵盤會相應變化。


屬性:必填字段

新規范引入了非常方便的 required attribute。現在我們可以輕松地使用此屬性,而不是使用花哨的 JavaScript 來處理我們的必填字段。

<input type="email" required>

登錄后復制

對于不支持該屬性的瀏覽器,我們可以再次使用Webforms2。因此,由于我們從一開始就將其包含在內,因此無需擔心。

注意:請務必將 a name 屬性分配給您的表單元素,否則 required 屬性將不會生效。


屬性:模式

pattern 屬性用于字段驗證,并且僅當值與使用正則表達式定義的特定格式匹配時才接受值。如果輸入的值與模式不匹配,表單將不會提交。

例如,要驗證電話號碼,我們必須使用以下 pattern 或正則表達式:

<input type="text" name="Tel" pattern="^0[1-689][0-9]{8}$">

登錄后復制

pattern 屬性可以通過使用 Webforms2 在不支持它的瀏覽器中實現。


屬性:自動對焦

autofocus attribute 正如它所說:自動聚焦我們的控件之一。目前基于 Webkit 的瀏覽器(Safari、Chrome 等)和 Opera 支持它。請記住:只有一個表單控件可以接收此屬性。

<input type="email" autofocus>

登錄后復制

Webforms2 負責在不支持的瀏覽器中實現。


屬性:占位符

placeholder 屬性是我們多年來一直使用 JavaScript 做的事情。它添加了有關該字段的一條信息,例如簡短的描述,當該字段獲得焦點時該信息就會消失。

<input name="name" placeholder="First Name">

登錄后復制

最新的 Beta Firefox 和 Webkit 瀏覽器支持此屬性。

為了模仿舊版瀏覽器中的行為,我們將使用 Viget 設計實驗室提供的 Placehold jQuery 插件。

var initPlaceholder = function() {
	$('input[placeholder]').placehold();
};

if(!Modernizr.input.placeholder){
	$(document).ready(initPlaceholder);
};

登錄后復制


屬性:最小值、最大值和步長

min、maxstep 輸入屬性指定某些表單控件的約束,例如日期選擇器、數字和范圍。您肯定可以從 minmax 的名稱中猜出它們的用途。 step 屬性指定每次單擊或“步驟”的多個范圍。例如,如果步長值為 2,則可接受的值可以是 0、2、4 等。

<input type="range" name="slider" min="0" max="20" step="5" value="0">

登錄后復制

這些屬性目前僅受 Opera 和 Webkit 瀏覽器支持,并由 Webforms2 實現,作為其他瀏覽器的后備。


結論

今天我們了解到,創建表單并為大多數新添加的內容提供后備是一項相當簡單的任務。如果今天人們仍然試圖嚇唬您不要使用 HTML5,請不要理會他們;立即開始使用您可以使用的出色工具!

請務必查看 Zoltan“Du Lac”Hawryluk 出色的 html5Widgets,它提供了類似的解決方案以及本機 JavaScript 小部件。


進一步閱讀

您必須了解的 28 個 HTML5 功能、提示和技術
HTML5 和 CSS3:您很快就會使用的技術 /a>

Mark Pilgrim 的 Dive Into HTML5 的“表單”部分

Mozilla 開發者中心的 HTML5 表單
W3C HTML5 表單規范工作草案
維基百科上布局引擎 (HTML5) 的比較

以上就是創建可在不同瀏覽器上運行的 HTML5 表單的詳細內容,更多請關注www.92cms.cn其它相關文章!

分享到:
標簽:創建 可在 器上 表單 運行
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定