第一個HTML表單

引言

這篇文章可以給你關于以下內容的的體驗:

  • 創(chuàng)建一個表單
  • 發(fā)送表單數(shù)據(jù)

什么是HTML表單?

表單是用戶與服務器或應用交互的主要方式之一。它們允許用戶向服務器發(fā)送數(shù)據(jù)。表單中的數(shù)據(jù)大多會被發(fā)送至服務器,但也可以被網(wǎng)頁截獲,使用。

一個表單是由一個或多個widget(部件,工具)組合而成的。
這些widget可以是

  • text field(single line or multiline)(文本框)
  • select box(下拉框)
  • button(按鈕)
  • checkbox(復選框)
  • radio button(單選框)

大多數(shù)情況下,每一個widget都有一個label與之匹配,用于描述widget的用途。

設計你的表單

建立一個簡單地模型可以幫助你確定你想從用戶那兒得到的正確的數(shù)據(jù)。
在本文中,我們將建立一個簡單地聯(lián)系人表單。首先,讓我們先畫一個簡單的草圖


來自mozilla mdn
來自mozilla mdn

我們的表單包含三個文本框和一個提交按鈕。當用戶點擊提交按鈕時,數(shù)據(jù)將被發(fā)送到指定的服務器上

來手動寫一個

我們將使用以下5個HTML元素來實現(xiàn)我們的聯(lián)系人表單

  • <form>
  • <label>
  • <input>
  • <textarea>
  • <button>

<form> 元素

所有的HTML表單都被包含在一對<form>...</form>元素標簽內,比如:

<form action = "/my-handling-form-page" method = "post">
    ...
</form>

與<div>和 <p>元素類似,<form> 元素也是一個容器元素,并且它也支持特定的屬性。
實踐中一般至少確定actionmethod 屬性

  • action 屬性定義了表單提交數(shù)據(jù)的地址
  • method 屬性定義了哪一個HTTP方法將被調用("post" or "get")

<label> , <input> ,and <textarea> 元素

我們的表單包含三個文本框,并且每一個文本框都有對應的標簽。姓名框只是一個簡單的單行文本框,e-mail框則只能接受e-mail地址,消息框則是一個簡單的多行文本框。

<form action = "/my-handling-form-page" method = "post">
    <div>
        <label for = "name">Name:</label>
        <input type = "text" id = "name" name = "user_name" >
    </div>
    <div>
        <label for = "mail">E-mail:</label>
        <input type = "email" id = "mail" name = "user_mail" >
    </div>
    <div>
        <label for = "msg" >Message:</label>
        <textarea id = "msg" name = "user_msg"></textarea>
</form>

我們使用<div> 標簽組織我們的代碼和樣式。
所有<label> 標簽均通過 for 屬性與對應的widget匹配。for屬性的值是widget的ID。

<input> 元素最重要的屬性是type屬性,type屬性定義了<input> 元素的行為。

也許你會對fortype屬性感到疑惑,繼續(xù)往下閱讀,在你看到更多的實例之后,你會有更加全面的認識,也會對他倆更加熟悉。
另外,注意<input> 與 <textarea>...</textarea> 的語法差異。這種語法差異體現(xiàn)在定義默認值上

<input type = "text" value = "你好">
<textarea>你好</textarea>

<button> 元素

最后,我們需要向我們的表單添加一個按鈕(button),使用戶可以發(fā)送他們的數(shù)據(jù)。

<div class = "button">
    <button type = "submit" >提交</button>
</div>

<button> 也有一個type屬性,其值可以是:submit,reset,button

  • submit 將數(shù)據(jù)發(fā)送給由form表單中的action屬性定義的服務器或網(wǎng)頁
  • reset 重新設定表單中的所有widgets的值為默認值
  • button 用于自定義,通過javascript實現(xiàn)

向服務器發(fā)送數(shù)據(jù)

你可能會發(fā)現(xiàn)我們上面的代碼中,每個widget有"多余的"屬性---name。其實它并不多余,因為表單中的數(shù)據(jù)是要提交給服務器處理的,而瀏覽器和服務器都需要對數(shù)據(jù)進行分類,因此,name 屬性是必須的。

最終效果

結果

只是有點丑...

學習于:mozilla mdn

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • 問答題47 /72 常見瀏覽器兼容性問題與解決方案? 參考答案 (1)瀏覽器兼容問題一:不同瀏覽器的標簽默認的外補...
    _Yfling閱讀 14,154評論 1 92
  • 表單基礎知識 在HTML中,表單是由 元素來表示的,而在JS中,表單對應的則是HTMLFormElement類型。...
    oWSQo閱讀 965評論 0 1
  • ¥開啟¥ 【iAPP實現(xiàn)進入界面執(zhí)行逐一顯】 〖2017-08-25 15:22:14〗 《//首先開一個線程,因...
    小菜c閱讀 7,334評論 0 17
  • HTML表單 在HTML中,表單是 ... 之間元素的集合,它們允許訪問者輸入文本、選擇選項、操作對象等等,然后將...
    蘭山小亭閱讀 3,507評論 2 14
  • 蘿卜種子買的最多,有1斤。是因為當時看見賣家在介紹頁面上顯示,生蘿卜苗可以象生豆芽一樣過程去操作。 小時候是見過母...
    雲(yún)蘇閱讀 743評論 0 0

友情鏈接更多精彩內容