2010-04-23 45 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