jQuery .hide(),然后.show()基于文本输入

时间:2013-10-09 04:25:57

标签: javascript jquery html css css3

使用jQuery filter example I found。这是my live example。以下是CodePen,(如果您不喜欢CodePen,也是Fiddle)。

在输入中输入内容后,框会重新排列,数字会消失。但是,当您删除输入的文本时,除非您刷新页面,否则这些数字不会重新出现。我试着搞乱下面的代码但是没有运气。谢谢你的帮助!

    $('#sortable').change(
function(){
if ($(this).val().length) {
    $('#number').hide();
}
else {
    $('#number').show();
}

});

4 个答案:

答案 0 :(得分:1)

这是更新的js ......

结帐Demo Fiddle

(function ($) {
    jQuery.expr[':'].Contains = function (a, i, m) {
        return (a.textContent || a.innerText || "").toUpperCase().indexOf(m[3].toUpperCase()) >= 0;
    };

    function listFilter(header, list) {
        var form = $("<form>").attr({
            "class": "filterform",
                "action": "#"
        }),
            input = $("<input>").attr({
                "class": "filterinput",
                    "type": "text",
            });
        $(form).append(input).appendTo(header);
        $(input).change(function () {
            var filter = $(this).val();
            if (filter) {
                $(list).find("a:not(:Contains(" + filter + "))").parent().slideUp();
                $(list).find("a:Contains(" + filter + ")").parent().slideDown();
            } else {
                $(list).find("li").slideDown();
            }
            return false;
        }).keyup(function () {
            $(this).change();
            if ($(this).val().length) {
                $('.number').hide();
            } else {
                $('.number').show();
            }

        });
    }
    $(function () {
        listFilter($("#header"), $("#sortable"));

    });
}(jQuery));

答案 1 :(得分:1)

试试这个: - http://jsfiddle.net/adiioo7/nYYBU/10/

<强> JS: -

(function ($) {
    jQuery.expr[':'].Contains = function (a, i, m) {
        return (a.textContent || a.innerText || "").toUpperCase().indexOf(m[3].toUpperCase()) >= 0;
    };

    function listFilter(header, list) {
        var form = $("<form>").attr({
            "class": "filterform",
                "action": "#"
        }),
            input = $("<input>").attr({
                "class": "filterinput",
                    "type": "text",
            });
        $(form).append(input).appendTo(header);
        $(input).change(function () {
            var list = $("#sortable");
            var filter = $(this).val();
            console.log(filter.length);
            if (filter.length > 0) {
                $(list).find("a:not(:Contains(" + filter + "))").parent().slideUp();
                $(".number").hide();
                $(".numberstwo").hide();
            } else {
                console.log($(".number"));
                $(".number").show();
                $(".numberstwo").show();
                $(list).find("a").parent().slideDown();
            }
            return false;
        }).keyup(function () {
            $(this).change();

        });
    }
    $(function () {
        listFilter($("#header"), $("#sortable"));

    });
}(jQuery));

答案 2 :(得分:0)

要检查输入的文本,我通常使用keyup。 当用户键入内容但键入和退出框时,不会触发更改。

答案 3 :(得分:0)

$('#sortable').blur(function(){
var len = $(this).val().length;
if (len) {
    $('#number').hide();
}
else {
    $('#number').show();
}