javascript - 函数在我的代码中不起作用

标签 javascript

我的问题是 text3 在我这里的代码中未定义:

t += text2 + "Case #" + i + ":" + "<br>" + text3 + "<br>";

但它在这里:

$('#pass').keyup(function (e) {
    var strong = new RegExp("^(?=.{11,})(((?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])(?=.*\\W))|((?=.*[A-Z])(?=.*[a-z])(?=.*\\W))|((?=.*[a-z])(?=.*[0-9])(?=.*\\W))|((?=.*[A-Z])(?=.*[0-9])(?=.*\\W))|((?=.*[A-Z])(?=.*[a-z])(?=.*[0-9]))).*$", "g");
    var normal = new RegExp("^(?=.{4,})(((?=.*[A-Z])(?=.*[a-z]))|((?=.*[A-Z])(?=.*[0-9]))|((?=.*[a-z])(?=.*[0-9]))|((?=.*[a-z])(?=.*\\W))|((?=.*[0-9])(?=.*\\W))).*$", "g");
    if (strong.test($(this).val())) {
        text3 = "strong";
    } else if (normal.test($(this).val())) {
        text3 = "normal";
    } else {
        text3 = "weak";
    }
    return true;
});

这是我所有的代码:

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
</head>
<body>
<p><input placeholder="number of tests" type="text" name="numbers" id="x"/></p>
<div id="passdiv"></div>

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js" type="text/javascript"></script>

<script type="text/javascript">

    $('#x').keyup(function (e) {

        var i;
        var text2 = '';
        var t = "";
        var x = document.getElementById("x").value;
        for (i = 1; i <= x; i++) {
            text2 = '<p><input placeholder="test NO. ' + i + '" type="password" id="pass" /></p>';
            t += text2 + "Case #" + i + ":" + "<br>" + text3 + "<br>";
        }
        document.getElementById("passdiv").innerHTML = t;

        return true;
    });

    $('#pass').keyup(function (e) {
        var strong = new RegExp("^(?=.{11,})(((?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])(?=.*\\W))|((?=.*[A-Z])(?=.*[a-z])(?=.*\\W))|((?=.*[a-z])(?=.*[0-9])(?=.*\\W))|((?=.*[A-Z])(?=.*[0-9])(?=.*\\W))|((?=.*[A-Z])(?=.*[a-z])(?=.*[0-9]))).*$", "g");
        var normal = new RegExp("^(?=.{4,})(((?=.*[A-Z])(?=.*[a-z]))|((?=.*[A-Z])(?=.*[0-9]))|((?=.*[a-z])(?=.*[0-9]))|((?=.*[a-z])(?=.*\\W))|((?=.*[0-9])(?=.*\\W))).*$", "g");
        if (strong.test($(this).val())) {
            text3 = "strong";
        } else if (normal.test($(this).val())) {
            text3 = "normal";
        } else {
            text3 = "weak";
        }
        return true;
    });

</script>
</body>
</html>

问题是什么? 请帮忙

最佳答案

看起来 $('#x').keyup()$('#pass').keyup() 之前被调用

关于javascript - 函数在我的代码中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26186636/

相关文章:

javascript - Angular 9 找不到类型为 '[object Object]' 的不同支持对象 'object' 。 NgFor 仅支持绑定(bind)到 Iterables,例如数组

javascript - 为什么在实现全局作用域状态时我会在 react 中使用 'useReduce'?

javascript - 如何使用 javascript 绘制之前保存在 docker workdir 中的图像?

javascript - Karma-Jasmine:如何测试 $translate.use?

javascript - 为什么 Array.prototype.some() 对于空集不返回 true ?

javascript - 为什么 JSLint 禁止 "this"关键字?

javascript - 在性能下降之前,浏览器可以安全地处理多少个元素 ID?

javascript - ChartJS 工具提示位置/放置

javascript - 用户可以通过浏览器永久修改 HTML 文件吗?

javascript - 如何传递值而不是数组的引用?