2014-12-10 37 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