javascript - 使用 Tab 键时所有占位符都会消失

标签 javascript jquery html

    case 'input':
                        echo '<div class="col-md-3">
                                <div class="placeholder">
                                <img src="images/person.png" />
                                <span class="placeholder-text">First name </span>
                                </div>
                                <input type="text" id="adi" name="adi"/>
                            </div>';
                    break;
                    case 'input1':
                        echo '<div class="col-md-3">
                                <div class="placeholder">
                                <img src="images/person.png" />
                                <span class="placeholder-text">Last name</span>
                                </div>
                                <input type="text" id="soyadi" name="soyadi"/>
                            </div>';
                    break;





    $(function () {
    $("input").on("blur", function () {
        var elem = $(this).parent().find(".placeholder");
        $(this).val() == "" ? elem.show() : elem.hide();
    });
    $(".placeholder").on("click", function () {
        $(this).hide();
        $(this).parent().find("input").focus();
    });

    $(window).keyup(function (e) {
        var code = (e.keyCode ? e.keyCode : e.which);
        if (code == 9 && $('#adi:focus').length) {
            $("input").parent().find(".placeholder");
            $(".placeholder").hide();       
        }
        if (code == 9 && $('#soyadi:focus').length) {
            $("input").parent().find(".placeholder");
            $(".placeholder").hide();
        }
    });

});

我有一个带有两个 html 输入文本字段的表单。

我希望使用 Tab 键时占位符消失。但是当我使用 Tab 键时,所有占位符都会消失。有什么建议吗?

最佳答案

    $("input").parent().find(".placeholder");
    $(".placeholder").hide();

这两条线都已关闭。 第一个并没有真正做任何事情,但我认为你的逻辑是错误的。首先,它找到所有 <input>标签,然后查看父节点,然后在父节点下找到所有 .placeholder s,然后对它们不执行任何操作。

第二行查找并隐藏所有 .placeholder s。

您正在寻找的内容可能如下所示:

$('#soyadi:focus').parent().find('.placeholder').hide();

或者

$('#soyadi:focus').closest('.placeholder').hide();

不同之处在于你的$('.placeholder').hide()找到所有这些,而这两个中的任何一个都会找到最接近它的一个并只隐藏那个。

关于javascript - 使用 Tab 键时所有占位符都会消失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34728036/

相关文章:

javascript - 如何避免 2 个 jQuery "on form submit"脚本之间的冲突?

javascript - 如何使用 if 语句删除和添加类?

php - 防止 str_replace 注释字符串中的 php 代码

javascript - 正则表达式在 IE8 中不起作用

javascript - 从同一文件中获取 module.exports

javascript - Google map API3 地理编码

jquery - 为二维区域中不同大小的非重叠四边形生成随机位置

javascript - 使用 Express 将 javascript 代码注入(inject) html

html - 如何修复 IE11 中的列表卡?图像很大(css 网格)Chrome,Safari 运行良好

javascript - 如何在 Android 上以编程方式退出全屏视频?