2014-05-14 3 views
0

В приведенном выше коде captcha я получаю двухзначные числа, т.е. От 0 до 10. но я хочу, чтобы мой captcha находился между 0-9. Как я могу выставить номер 10 в моем коде captcha? Есть ли какой-нибудь скрипт для остановки двухзначного числа? Любая помощь будет оценена!Как ограничить двухзначное число в коде captcha?

<html> 
    <head> 
    <title>Captcha</title> 

     <script type="text/javascript"> 

     //Created/Generates the captcha function  
     function DrawCaptcha() 
     { 
      var a = Math.ceil(Math.random() * 10)+ ''; 
      var b = Math.ceil(Math.random() * 10)+ '';  
      var c = Math.ceil(Math.random() * 10)+ ''; 
      var d = Math.ceil(Math.random() * 10)+ ''; 
      var e = Math.ceil(Math.random() * 10)+ ''; 
      var f = Math.ceil(Math.random() * 10)+ ''; 
      var g = Math.ceil(Math.random() * 10)+ ''; 
      var code = a + ' ' + b + ' ' + ' ' + c + ' ' + d + ' ' + e + ' '+ f + ' ' + g; 
      document.getElementById("txtCaptcha").value = code 
     } 

     // Validate the Entered input aganist the generated security code function 
     function ValidCaptcha(){ 
      var str1 = removeSpaces(document.getElementById('txtCaptcha').value); 
      var str2 = removeSpaces(document.getElementById('txtInput').value); 
      if (str1 == str2) return true;   
      return false; 

     } 

     // Remove the spaces from the entered and generated code 
     function removeSpaces(string) 
     { 
      return string.split(' ').join(''); 
     } 


     </script> 



    </head> 
    <body onload="DrawCaptcha();"> 
    <table> 
    <tr> 
     <td> 
      Welcome To Captcha<br /> 
     </td> 
    </tr> 
    <tr> 
     <td> 
      <input type="text" id="txtCaptcha" 
       style="background-image:url(1.jpg); text-align:center; border:none; 
       font-weight:bold; font-family:Modern" /> 
      <input type="button" id="btnrefresh" value="Refresh" onclick="DrawCaptcha();" /> 
     </td> 
    </tr> 
    <tr> 
     <td> 
      <input type="text" id="txtInput"/>  
     </td> 
    </tr> 
    <tr> 
     <td> 
      <input id="Button1" type="button" value="Check" onclick="alert(ValidCaptcha());"/> 
     </td> 
    </tr> 
    </table> 
    </body> 
    </html> 

ответ

1

Использование Math.floor() при работе со случайными номерами.

Math.rand() возвращает число от нуля до единицы, но ноль включен в то время как один нет.

Если вы умножаетесь на 10, тогда включается ноль, но 10 нет.

Это означает, что если вы округлите до, вы никогда не получите * 0.

Так, округлить его вниз;)

* Для того, чтобы получить нуля, произвольно выбранное число само должно быть в точности равна нулю. Математически шансы на выбор какого-либо точного реального числа в диапазоне действительных чисел равны нулю, однако на практике из-за ограничений чисел в вычислениях это гораздо более возможно, но все же смехотворно маловероятно.

+0

красиво и спасибо Niet .. – User2413

0

Вы должны, возможно, использовать Math.floor() вместо Math.ceil()

Math.random() * 10 получает вас номер между [0; 10 [(средства, включая 0, за исключением 10). Так что вам нужно, чтобы закруглить вниз не вверх, когда ваше полученное число должно находиться в диапазоне от 0 до 9.

см:

+1

http://w3fools.com/ –

+0

Тем не менее w3schools.com является de одетый в отношении соответствия w3c, это быстрая помощь для начинающих. Если вам это не нравится, я рекомендую предоставить альтернативные сайты :-) –

Смежные вопросы