1. 程式人生 > >HTML標籤 易混易錯小總結

HTML標籤 易混易錯小總結

糾結了一天,終於把HTML標籤的正確使用,各自的適用性清楚地瞭解了一下,這裡簡單總結一下以免再犯類似的錯誤。

一切都是由於這樣的一個問題

<html>
<head>
</head>
<body>
	<form id="form1" method="get" >	
		使用者名稱:<input type="text" id="name" name="name" />
		<p id="username"></p>
		<br />
		密碼:<input type="password" id="password" name="password" />
		
		<button type="submit" onclick="mUp()">登入</button>		
	</form>

	<script>
	window.x=document.getElementById("username");
	window.onload=function()
	{
		document.getElementById('name').focus();
	}
	//
	function mUp()
	{	
		if(document.getElementById('name').value=="")
		{
			x.innerHTML = "使用者名稱不能為空";
			//alert("不能為空");
		}
		else
			document.getElementById('form1').action="/login";
	}
	</script>	
</body>
</html>

將以上程式碼執行,當什麼也不輸入時電擊“登入”按鈕,會提示“使用者名稱不能為空”,但是僅出現一下就會閃退。是什麼原因呢?

關鍵是這裡

<button type="submit" onclick="mUp()">登入</button>	
此時會有兩個事件觸發,首先呼叫onclick對應的函式,然後再進行自動submit(因為此時type的型別為submit),自然會將提示覆蓋掉。所以將type設定成button即可解決。

下面簡單總結一下,

HTML <input> 標籤的 type 屬性

描述
button 定義可點選按鈕(多數情況下,用於通過 JavaScript 啟動指令碼
)。
checkbox 定義複選框。
file 定義輸入欄位和 "瀏覽"按鈕,供檔案上傳。
hidden 定義隱藏的輸入欄位。
image 定義影象形式的提交按鈕。
password 定義密碼欄位。該欄位中的字元被掩碼。
radio 定義單選按鈕。
reset 定義重置按鈕。重置按鈕會清除表單中的所有資料。
submit 定義提交按鈕。提交按鈕會把表單資料傳送到伺服器。
text 定義單行的輸入欄位,使用者可在其中輸入文字。預設寬度為 20 個字元。
注:type=button:就單純是按鈕功能 ;type=submit:是傳送表單

HTML <button> 標籤的 type 屬性

描述
submit 該按鈕是提交按鈕(除了 Internet Explorer,該值是其他瀏覽器的預設值)。
button 該按鈕是可點選的按鈕(Internet Explorer 的預設值)。
reset 該按鈕是重置按鈕(清除表單資料)。
未完待續……