input type="submit" 和"button"有什么區別?


http://www.zhihu.com/question/20839977


在一個頁面上畫一個按鈕,有四種辦法:
  • <input type="button" /> 這就是一個按鈕。如果你不寫javascript 的話,按下去什么也不會發生。
  • <input type="submit" /> 這樣的按鈕用戶點擊之后會自動提交 form,除非你寫了javascript 阻止它。
  • <button> 這個按鈕放在 form 中也會點擊自動提交,比前兩個的優點是按鈕的內容不光可以有文字,還可以有圖片等多媒體內容。(當然,前兩個用圖片背景也可以做到)。它的缺點是不同的瀏覽器得到的 value 值不同;可能還有其他的瀏覽器兼容問題(葛亮)。
  • 其他標簽,例如 a, img, span, div,然后用圖片把它偽裝成一個按鈕。
參見:
[原]<button>和<input type="button"> 的區別
html - Difference between <input type='button' /> and <input type='submit' />
html - input type="submit" Vs button tag are they interchangeable?
 

畫面表現上,其他回答都已經說明了。
需要強調的一點是,其實 <input type="submit" />不是一個畫面元素,而是一個表單(Form)元素,和文本輸入是一樣的,都屬於“數據”的一部分(特征是,有value屬性,而且該屬性的值,會被傳送到server端,可以拿來用),而不是樣式的一部分。這種表現和數據混淆的設計,是早期web標准還比較簡陋的時代的遺產。
從畫面表現上看,通過CSS可以把兩者描繪得完全一樣。
從畫面動作上看,通過JS可以強制兩者動作也一致(都提交或者都不提交)。
但是只有表單數據這個特性,是無法混淆的。 <button>無法把自己當成Form的數據。
所以,如果只是個單純的按鈕,觸發一些畫面動作,請使用 <button>;反之,會把畫面的數據提交給Server的,一般用 <input type="submit" />,當然 <button>+JS也完全可以取代。
 
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM