1
<input id="edit-name" type="text" class="name"/>

光标聚焦在文本中,没有输入字符失去焦点,给个提示(请输入名字)

将光标聚焦在文本框中,然后在文本框中键入一个字符,将错误信息删除。

我的代码:

    $('#edit-name').focus(function(){
        if($(this).val()!=''){
        $('.error-message').remove();
        }
    });
    $('#edit-name').blur(function(){
        if($(this).val()==''){
            $('.error-message').remove();
          $('#edit-name').after('<span style="color:red;" class="error-message" >please enter the name!&lt;/span>'); 
        }


});

我的代码有问题吗?尽管我在文本框中输入了一个字符,但错误消息仍然存在,除非光标再次聚焦在文本中。

4

1 回答 1

0

您正在使用模糊,这意味着如果您离开输入框没有输入任何内容,它将显示工具提示。但是,您的问题表明您想要

光标在文本中没有输入字符,给个提示(请输入名字)

这意味着也需要关注焦点和else条件。你正在寻找这样的东西:

     $('#edit-name').on('focus change', function(){
        if($(this).val()!=''){
        $('.error-message').remove();
        } else { 
          // what you're doing in the blur function
        }
    });

只要我专注于输入框,我就会看到工具提示。change确保我一输入内容,工具提示就会消失。

PS - 除非我弄错了,而且你真的希望工具提示出现在模糊中。在这种情况下,请忽略此答案。

于 2012-11-01T02:11:58.350 回答