0

This my code: the function check() is working, but the function ChangeCaptcha() didn't show letter in input type="randomfield" :

<body onload="ChangeCaptcha()">
  <input type="text" id="randomfield" disabled><br><br>                               
    <input id="CaptchaEnter" size="20" ><br><br>                         
    <button type="submit" onclick="check()">Log in</button>

  <script type="text/javascript">
    function ChangeCaptcha() {
      var chars= "1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
      var string_lenght = 6;
      var ChangeCaptcha = '';
      for (var i=0; i<string_length; i++) {
        var rnum = Math.floor(Math.random() * chars.length);
        ChangeCaptcha+= chars.substring(rnum, rnum+1);
      }
      document.getElementById('randomfield').value= ChangeCaptcha;
    }
    function check() {
      if (document.getElementById('CaptchaEnter').value == document.getElementById('randomfield').value) {
        window.open('http://www.lolila.hol.es', '_self');
      } else {
        alert('Pleace re-check the captcha!')
      }
    }
  </script>
</body>
John Slegers
  • 45,213
  • 22
  • 199
  • 169
Nazar Vovk
  • 73
  • 7

1 Answers1

1

I executed your code right here in chrome developer console: enter image description here

it tells me you have a typo in your code because i does not know the variable: string_length. you declared it as string_lenght. To fix, change string_lenght => string_length.

The result:

function ChangeCaptcha() {
      var chars= "1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
      var string_length = 6;
      var ChangeCaptcha = '';
      for (var i=0; i<string_length; i++) {
        var rnum = Math.floor(Math.random() * chars.length);
        ChangeCaptcha+= chars.substring(rnum, rnum+1);
      }
      document.getElementById('randomfield').value= ChangeCaptcha;
    }

the result: enter image description here

Joel Harkes
  • 10,975
  • 3
  • 46
  • 65