【问题标题】:show div if field value matches a string如果字段值与字符串匹配,则显示 div
【发布时间】:2015-02-18 14:58:31
【问题描述】:

我需要这方面的帮助,我希望在用户输入正确的字段值时显示 div,例如(“密码”)。到目前为止,这是我所拥有的:

<input type="text" name="vip-code" id="vipcode" value="" />
<div id="container" style="display:none;"></div>

<script>
$(function () {
var validcode = "ThePassword";
$("#vipcode").focusout(function () {
    $(this).keyup(function () {
        var code = $(this).val();
        if (this === validcode) {
            $("#container").css("display", "block");
        } else {
            $("#container").css("display", "none");
        }
    });
});
});
</script>

有什么想法吗?

提前致谢。

【问题讨论】:

  • 焦点输出时,您正在绑定一个 keyup 事件......为什么?

标签: jquery keyup onkeyup jquery-focusout


【解决方案1】:

不确定句柄keyup 事件是否正确,但问题是:您将validcode 与输入字段vip-code 进行比较,而不是code 变量...

if (code === validcode) {
    $("#container").css("display", "block");
} else {
    $("#container").css("display", "none");
}

【讨论】:

    【解决方案2】:

    在您的代码中,您只有在 vipcode 输入失去焦点时才绑定到 keyup 事件,因此很有可能永远不会触发 keyup 事件。值得一提的是,在客户端硬编码密码是一种非常糟糕的做法,因为它是一个巨大的安全漏洞。

    <input type="text" name="vip-code" id="vipcode" value="" />
    <div id="container" style="display:none;"></div>
    
    <script>
      $(function () {
        var validcode = "ThePassword";
        $("#vipcode").keyup(function () {
            var code = $(this).val();
            if (code === validcode) {
                $("#container").show();
            } else {
                $("#container").hide();
            }
        });
      });
    </script>
    

    http://jsfiddle.net/uuy6ovf6/2/

    【讨论】:

    • @EzioAuditoredeFirenze 是否要将其标记为已回答?
    猜你喜欢
    • 2021-12-28
    • 1970-01-01
    • 1970-01-01
    • 2022-10-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多