javascript - 输入后打勾和交叉 - jQuery

标签 javascript jquery

大家。如果用户已写入一些文本(或仍在写入),我想在输入字段旁边显示勾号,如果输入字段为空,则显示十字。 这是我的尝试:

$('#myForm input').blur(function (){
    if($(this).val() == '')
    {
        $(this).after("<img src='./media/img/cross.png' style='margin-top: 15px;'/>");
    }
});

$('#myForm input').keypress(function (){
    if($(this).val() != '')
    {
        $(this).after("<img src='./media/img/tick.png' style='margin-top: 10px; width: 1.5em; height: 1.5em;'/>");
    }
});

只要用户输入字母,上面的代码就会添加图像。我怎样才能避免这种情况?有更优雅的方法吗?

提前致谢。

更新

这是我的 HTML:

<form id="myForm" name="loginForm">
    <input type="text" class="input" placeholder="Username" id="username"/>
    <input type="password" class="input" placeholder="Password" id="password"/>
    <input type="submit" class="btns" value="Login" name="submitLogin"/>
</form>

最佳答案

将两个图像标签添加到 html 中,并为它们提供一个带有 display:hidden 的类。使用事件不要通过 .after() 添加 DOM 元素,而是使用它们分别设置或取消设置 imgs 上的隐藏类,有点像这样:

$('#myForm input').blur(function (){
        if($(this).val() == '')
        {
            $(this).next('.tick').addClass('hidden');
            $(this).next('.tick').next('.cross').removeClass('hidden');
        }
    });

    $('#myForm input').keypress(function (){
        if($(this).val() != '')
        {
            $(this).next('.tick').next('.cross').addClass('hidden');
            $(this).next('.tick').removeClass('hidden');
        }
    });
.hidden {display: none}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form id="myForm" name="loginForm">
    <input type="text" class="input" placeholder="Username" id="username"/><img class="hidden tick" src="#" alt="tick" /><img class="hidden cross" src="#" alt="cross" /><br/>
    <input type="password" class="input" placeholder="Password" id="password"/><img class="hidden tick" src="#" alt="tick" /><img class="hidden cross" src="#" alt="cross" /><br/>
    <input type="submit" class="btns" value="Login" name="submitLogin"/>
</form>

关于javascript - 输入后打勾和交叉 - jQuery,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38093532/

相关文章:

javascript - Firebase Web 推送通知 token 未获取

javascript - node.js 服务器如何优于基于线程的服务器

javascript - AJAX 和 JavaScript : suggestions about an interface

javascript - 在代理处理程序中,如何区分获取属性 (var) 与调用方法?

javascript - 带 anchor 的复选框

android - 在 onsen.ui 中为旋转木马动态创建项目 ons-list-item

jquery Cookie 和 CSS

javascript - 每次我在 chrome 中加载网站时,总是在代码中添加广告软件 javascript

javascript - 使用 javascript 或 jquery 计算持续时间

javascript - Angular JS显示div元素时出现问题