此脚本检查表单是否已正确填写,但toggle()
函数不断被触发(至少在 FireFox 中)。在下面的示例中,“现在在这里”在表单有效后继续显示(即所有字段都有一些文本)。
<script type="text/javascript">
<!--
function toggle()
{
if(document.getElementById('username').value.length > 1 && document.getElementById('pw1').value.length > 1 && document.getElementById('pw2').value.length > 1 && (document.getElementById('pw1').value == document.getElementById('pw2').value))
{
alert("now here")
document.getElementById('submit').disabled = false
}
}
//-->
</scipt>
Username:<input type="text" name='username' id='username' maxlength="30" onkeyup="toggle()"/><br />
Password:<input type="password" name="pw1" id="pw1" onkeyup="passwordCheck(document.getElementById('pw1'), document.getElementById('pw2')); toggle()"/><br />
Confirm password:<input type="password" name="pw2" id="pw2" onkeyup="passwordCheck(document.getElementById('pw1'), document.getElementById('pw2')); toggle()"/>
我很受伤,为什么onkeyup
总是被解雇?就好像用户从来没有把手指从钥匙上拿开一样。是因为onkeyup
当它触发警报窗口时被搞砸了,因为焦点从文本字段变为窗口并且当按下确定时焦点又变回文本字段?