如果字段值与字符串匹配,则显示div

时间:2015-02-18 14:58:31

标签: jquery keyup onkeyup jquery-focusout

我需要这方面的帮助,我希望当用户输入字段的正确值时显示div,例如(" ThePassword&#34)。这就是我到目前为止所拥有的:

<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>

有什么想法吗?

提前致谢。

2 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:0)

在代码中,只有在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/