首页 > 解决方案 > 在输入框中生成 0000 到 9999 的数字

问题描述

我想制作一个 JavaScript 脚本,它会生成从 0000 到 9999 的数字,不是随机生成的,而是会一个接一个地尝试每个数字,比如 0000、0001、0002 ...,然后会立即按下提交按钮,页面刷新后脚本应保持运行。

输入框: <input id="form_Number" name="form[Number]" required="required" class="form-control" value="" type="text" pattern="[0-9]*" data-kpxc-id="form_Number">

提交按钮: <button type="submit" id="form_submit" name="form[submit]" class="btn-primary btn">Submit</button>

这是一个使用代码登录的原始网站,它也没有验证码。无论哪种方式,它都应该尝试每个组合,直到它成功登录,就像脚本放入这些组合并立即按下按钮,然后如果失败,页面刷新和脚本应该保持运行并一遍又一遍地放置这些组合。与其说是严肃的目的,不如说是为了好玩。此外,我必须以实际用户身份登录网站才能访问此输入框。

标签: javascript

解决方案


如果我理解正确,您希望强制执行某些操作。我写这个答案的假设是你不会用它来做坏事。


您可能正在寻找 ajax 请求。我将在 jQuery 中编写此代码,因为它使示例不那么模糊,您可能需要根据需要重写它。

这将触发 10 个(因此该示例仍然是示例)请求并将结果返回到 div。您可能想要其他东西,只需编辑.then()函数的内容。

function probeForResult(iNumber){
    var $target = $(`<div id="result${iNumber}" />`);
    $target.html(`Waiting for result (${iNumber})...`);

    $('#wrapper').append($target);

    $.post('/some/url', {form: {number: iNumber}})
    .then(response=>{
    	$target.html(response);
        // Reponse is likely not some string. You might want to check header,
        // or something else that is it returning
        console.log(response);
    })
    .catch(()=>{
        $target.html('Whoops, error. Does the url exist?'); // the url in this example doesnt exists
    });
}

$('#wrapper').html('');
for( let i=0; i<=10; i++){
    probeForResult(i);
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<div id="wrapper">
    Did nothing so far
</div>

免责声明:将此设置为 10.000 次迭代可能会炸毁您的浏览器 :)


推荐阅读