先說一下button 和input的定義:
<button> 標籤定義的是一個按鈕
1、在 <button> 元素內部,您可以放置任何內容,比如文字或影像。這是該元素與使用 <input> 元素建立的按鈕之間的不同之處;
2、 <button> 控制元件提供了更為強大的功能和更豐富的內容;
3、<button> 與 </button> 標籤之間的所有內容都是按鈕的內容,其中包括任何可接受的正文內容,比如文字或多媒體內容。
<input> 標籤規定了使用者可以在其中輸入資料的輸入欄位
<input> 元素在 <form> 元素中使用,用來宣告允許使用者輸入資料的 input 控制元件;input具體型別取決於type屬性
接下來具體說明 四種按鈕: <input type=”submit”/>、<input type=”button”/>、<button type=”submit”></button>、<button type=”button”></button>
一、<input type=”submit”/>:當使用者單擊此按鈕時,表單會按<form>標記的action屬性設定的方式來傳送表單內容。點選時,頁面會重新整理
<form action="#"> <input type="text" name="username"/><br/> <input type="password" name="password"/><br/> <input type="submit" value="登入"/> </form>
要想在提交資料之前,先對錶單資料進行檢驗:
<form action="#" onsubmit="return check()">
使用者名稱:<input type="text" name="username"/><br/>
密碼:<input type="password" name="password"/><br/>
<input type="submit" value="登入"/>
</form>
<script LANGUAGE="JavaScript">
function check(){
console.log("提交前先驗證");
var checkElement=document.getElementsByTagName("input");
if(checkElement[0].value==="" || checkElement[1].value==="") {
return false;//當使用者名稱或者密碼為空時,返回false,此時表單不會提交
}
}
</script>
當check函式裡返回false會阻止submit的預設行為,即阻止表單資料提交(阻止頁面重新整理)
注意:onsubmit=“return check()“ 中的 return 不能省略
二、<input type=”button”/>普通按鈕,必須搭配JS才有用,如onclick事件等
<form action="#" onsubmit="return check()"> 使用者名稱:<input type="text" name="username"/><br/> 密碼:<input type="password" name="password"/><br/> <input type="submit" value="登入"/> <input type="button" value="提醒" onclick="remind()"/> </form> <script LANGUAGE="JavaScript"> function check(){ console.log("提交前先驗證"); var checkElement=document.getElementsByTagName("input"); if(checkElement[0].value==="" || checkElement[1].value==="") { return false;//當使用者名稱或者密碼為空時返回false,此時表單不會提交 } } function remind(){ alert("這是一個簡單按鈕,預設不會提交表單資料,不會重新整理頁面"); } </script>
三、<button type=”submit”></button>表單資料提交按鈕,與<input type=”submit”/>用法相同
<form action="#" onsubmit="return check()">
使用者名稱:<input type="text" name="username"/><br/>
密碼:<input type="password" name="password"/><br/>
<button type="submit">登入</button>
</form>
<script LANGUAGE="JavaScript">
function check(){
console.log("提交前先驗證");
var checkElement=document.getElementsByTagName("input");
if(checkElement[0].value==="" || checkElement[1].value==="") {
return false;//當使用者名稱或者密碼為空時返回false,此時表單不會提交
}
}
</script>
四、<button type=”button”></button>普通按鈕,與<input type=”button”/>的用法是一樣的
<form action="#" onsubmit="return check()"> 使用者名稱:<input type="text" name="username"/><br/> 密碼:<input type="password" name="password"/><br/> <button type="submit">登入</button> <button type="button"onclick="remind()">提醒</button> </form> <script LANGUAGE="JavaScript"> function check(){ console.log("提交前先驗證"); var checkElement=document.getElementsByTagName("input"); if(checkElement[0].value==="" || checkElement[1].value==="") { return false;//當使用者名稱或者密碼為空時返回false,此時表單不會提交 } } function remind(){ alert("這是一個簡單按鈕,預設不會提交表單資料,不會重新整理頁面"); } </script>
注意一點:
當<button>未處於<form>表單中時,其瀏覽器預設的type就是button;
而當<button>處於<form>表單中時,不同的瀏覽器對 <button> 元素的 type 屬性使用不同的預設值;
因此,建議時刻為button設定type值。
總結一下:
-
<button type=”submit”></button> 和 <input type=”submit”/>用法相同,用作表單資料提交按鈕,預設即會重新整理頁面;
-
<button type=”button”></button> 和 <input type=”button”/>的用法是一樣的,均為普通按鈕,預設情況不會重新整理頁面。