2014-12-10 39 views
0
<script> 
function valid() { 
    document.getElementById("name").style.borderColor = "#ef0000"; 
} 
</script> 

<form method="post" action=""> 
<input type="text" name="name" id="name"> 
<input type="submit" onclick="valid()" value="click"> 
</form> 

爲什麼地球上此代碼不起作用?我只是紅着臉,邊界再次處於初始狀態。我懇求你的原諒人,真的。我知道這是重複的(我甚至發現至少有一個工作解決方案在這裏:http://jsfiddle.net/bcxLz4wh/)我只是想知道我的代碼有什麼問題,爲什麼它返回到它的初始狀態。更改輸入類型顏色與ws js onclick

+1

因爲通過點擊提交,它會劫持您的操作以提交代碼。而不是貫穿你的功能。 – aahhaa 2014-12-10 22:53:29

回答

5

由於您正在點擊提交按鈕,它會返回到初始狀態。默認行爲是提交刷新頁面的form。如果您只想更改border-color,則需要覆蓋該默認行爲。 類似於:

function valid(e) { 
    document.getElementById("name").style.borderColor = "#ef0000"; 
    e.preventDefault(); 
} 


<form method="post" action=""> 
    <input type="text" name="name" id="name"> 
    <input type="submit" onclick="valid(event)" value="click"> 
</form> 
+0

非常感謝你! – Rossitten 2014-12-11 00:22:29