2010-04-23 75 views
2

我正在使用mscaptcha圖像,並試圖只重新加載按鈕點擊驗證碼圖像。好像驗證碼圖像有時會被加載兩次。jquery加載方法

<script type="text/javascript"> 
     $(document).ready(function() { 
      $('#btnSubmit').click(function() { 
       $('#dvCaptcha').load('default.aspx #dvCaptcha');     
      }); 
     }); 
    </script> 

<div id="btnDiv"> 
    <asp:Button ID="btnSubmit" runat="server" Text="Submit" /> 
</div> 

<div id="dvCaptcha"> 
    <cc1:CaptchaControl ID="ccJoin" runat="server" CaptchaBackgroundNoise="none" CaptchaLength="5" CaptchaHeight="60" CaptchaWidth="200" CaptchaLineNoise="None" CaptchaMinTimeout="5" CaptchaMaxTimeout="240" /> 
</div> 

任何想法?

+0

你的意思是要防止它在雙擊加載兩次? – 2010-04-23 02:19:10

+0

你的意思是圖像在頁面上出現兩次,或者從一次到另一次,就像提交按鈕被點擊過兩次一樣? – karim79 2010-04-23 02:20:05

+0

我使用相同的方式刷新驗證碼圖像,但ValidateCaptcha()返回false。如果輸入第一個驗證碼(通過第一次加載頁面顯示),則返回true。有什麼問題 – 2012-02-28 17:50:56

回答

0

我對asp並不是太熟悉,但從我的頭頂我可以認爲,也許如果你添加一個「返回false」,將阻止瀏覽器做任何意想不到的事情。

試試這個:

$('#btnSubmit').click(function() { 
    $('#dvCaptcha').load('default.aspx #dvCaptcha'); 
    return false;  
}); 

希望這有助於!

+0

我的意思是:在刷新按鈕上單擊...有時會有兩個圖像被一個接一個地加載。有時它會一次加載圖像。 此外,如果我返回false它不會阻止用戶多次單擊刷新按鈕。 – user323838 2010-04-23 14:04:38

0

如果問題涉及到點擊提交按鈕不止一次,那麼禁用它,直到接收到響應:

<script type="text/javascript"> 
     $(document).ready(function() { 
      $('#btnSubmit').click(function() { 
       $(this).attr("disabled", "disabled"); 
       $('#dvCaptcha').load('default.aspx #dvCaptcha', function() { 
        $('#btnSubmit').removeAttr("disabled"); 
       }); 
       return false;    
      }); 
     }); 
    </script> 
+0

karim, 我使用.net應用程序,似乎我必須使用$(「[id $ = btnSubmit]」)而不是$('#btnSubmit')來獲取對btnSubmit的引用。所以我修改了你提到的示例代碼到 $(document).ready(function(){($ [$ $ = btnSubmit])(click)(function(){($ [$ $ = dvCaptcha ]「)。load('Default.aspx [id $ = dvCaptcha]'); return false; }); }); 看起來像加載方法語法錯誤。點擊事件正確觸發。 – user323838 2010-04-23 22:24:02

+0

請不要理會我以前的帖子。經過位研究發現, $('#dvCaptcha')。load('default.aspx #dvCaptcha');正在加載圖像,但只有一次。也許它緩存圖像? – user323838 2010-04-24 00:51:02