簡體   English   中英

為什么這個事件會被解雇?

[英]Why does this event keep getting fired?

此腳本檢查表單是否已正確填寫,但toggle()函數一直被觸發(至少在FireFox中)。 在下面的示例中,“now here”在表單有效后繼續顯示(即所有字段都有一些文本)。

<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因為焦點從文本字段變為窗口而變得緊張,因為焦點從文本字段變為窗口,當按下確定時焦點會變回文本字段?

更新:我在Bugzilla 找到了它 你可以投票支持它 自2001年底以來一直有報道,它為什么豆這么長而且不固定?

看起來您希望該函數在正確填寫表單時將提交更改從禁用更改為啟用。 每次使用全部三個輸入調用onKeyUp時,該函數應該觸發,因為您在所有三個輸入中調用它。

我的jsfiddle( http://jsfiddle.net/BhaeG/ )只在if語句的所有條件都正確時觸發alert("now here")

除非我真的錯過了一些東西,否則它似乎正在按設計工作。

在FireFox中,如果您在警報窗口按Enter鍵,它將觸發onKeyUp

我通過使用onkeydown而不是onkeyup解決了這個問題。 因人而異。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM