【发布时间】:2010-12-31 15:21:07
【问题描述】:
整个实时代码:http://jsfiddle.net/9GWtT/
HTML 代码:
<html>
<body>
<form>
<fieldset><p>
<label>Username: <input type="text" name="user" id="user" /></label></p><br /><p>
<label>Password: <input type="password" name="passw" id ="passw" /></label></p>
<label><input type="submit" value="Log in" name="submitBUT" class="regbut" id="submitBUT" /><div id="helllo"></div></label>
</fieldset>
</form>
</body>
CSS 代码:
input.regbut {
width: 65px;
height: 25px;
background-color: #3C0;
color: white;
font-weight: bold;
border-radius: 7px;
//-moz-border-radius: 7px;
border-top: 1px solid #CCC;
border-left: 1px solid #CCC;
border-right: 1px solid #777;
border-bottom: 1px solid #777;
}
input.regbut:hover {
border-top: 1px solid #777;
border-left: 1px solid #777;
border-right: 1px solid #CCC;
border-bottom: 1px solid #CCC;
}
input.regbut:active {
background-color: #390;
}
JAVASCRIPT 代码:
var subBut = document.getElementById('submitBUT');
var users = ['hithere', 'Peter112', 'Geksj', 'lOsja', 'fInduS', '323DssaAA', 'f1fsus'];
var passes = ['mllesl', 'Petboy', 'Heneeesh', 'Olga', '234dasdf77/', 'minls', 'ew832ja'];
var output = [];
function submi(u, p) {
for (var i = 0; i < users.length; i++) {
if (users[i] == u) {
output.push(i);
}
}
for (var o = 0; o < output.length; o++) {
if (passes[output[o]] == p) {
return p + ' was a correct password.';
}
}
return 'Error, please try again';
}
subBut.onclick = function() {
document.getElementById('helllo').innerHTML =
submi(document.getElementById('user').value, document.getElementById('passw').value);
return false;
};
好的,所以按钮一开始可以很好地工作,但是在您单击一次之后, :hover 属性突然发生在按钮本身之外很远的地方,即使您将鼠标悬停在出现在您之后的标签中的文本上单击按钮。这是为什么呢??
【问题讨论】:
-
你的浏览器是什么?在 FF 中看不到异常。
-
请在问题中包含相关代码,正如我上次提到的:stackoverflow.com/questions/4570049/…
-
真的吗?你试过按照我说的做吗?先点一次,再试试。
-
@T.J. - 也许 OP 对实际相关的代码感到困惑。在这种情况下,他提供的标记就足够了。
-
哦,你是这个意思。这是因为您将消息放在与输入相同的标签内。 (OP 注意到单击后将鼠标悬停在添加的消息上将从同一 中的输入继承 CSS
标签: javascript html css button