-3

我希望有两个按钮,一个自动在警报中生成一个随机字符串,我希望另一个用户能够在文本框中输入代码并告诉他们它是否有效。

首先这可能吗?其次,对于 JavaScript 新手来说,这很难吗?

这是我现在正在使用的当前代码。

<script language="javascript" type="text/javascript">
function randomString() {
 var chars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz";
 var string_length = 5;
 var randomstring = '';
 for (var i=0; i<string_length; i++) {
  var rnum = Math.floor(Math.random() * chars.length);
  randomstring += chars.substring(rnum,rnum+1);
 }
 return randomstring;
}
</script>

<script>
function myFunction()
{
alert(randomString());
}
</script>

谢谢1

4

1 回答 1

1

那一个怎么样:

----------- 文件:index.html -----------

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Captcha Test</title>
    <script src="test.js"></script>
</head>
<body onload="loadCaptcha('captcha-region')">

    <div id="captcha-region"
         style="text-indent: 10px; background: #fffccc"></div>

    <label for="captcha"> Re-type text: </label>
    <input  id="captcha" type="text" value="" />

    <input type="button" value="Submit"
           onclick="checkCaptcha('result-region')" />

    <input type="button" value="Reload"
           onclick="loadCaptcha('captcha-region')" />

    <div id="result-region"></div>

</body>
</html>

--------- 文件:test.js -----

function randomInt (range) {
    return Math.floor(Math.random() * range);
}

function randomPos (s) {
    return randomInt(s.length);
}

function randomChar (s) {
    return s.charAt(randomPos(s));
}


var chars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz";

function randomString () {
    var s = '',
        i = 0;

    while (i++ < 5) {
        s += randomChar(chars);
    }

    return s;
}

function htmlInsert (id, htmlData) {
    document.getElementById(id).innerHTML = htmlData;
}


var captcha;

function loadCaptcha (captchaRegion) {
    captcha = randomString();

    htmlInsert(captchaRegion, '<h1>' + captcha + '</h1>');
}

function checkCaptcha (resultRegion) {
    var okText = (captcha === document.getElementById('captcha').value)
            ? '<span style="color: yellowgreen"> ok </span>'
            : '<span style="color: orange">  not ok </span>';

    htmlInsert(resultRegion, '<h2>Typed text: ' + okText + '</h2>');
}

这基本上是一种验证码演示,可能包含一些不错的部分..

您可能希望将 index.html 和 test.js 放在您喜欢的目录中(不需要本地 Web 服务器),然后从该目录中执行:“firefox index.html”,您就可以开始了..

你怎么看?

于 2013-04-24T01:04:53.977 回答