javascript - jQuery 输入值焦点和模糊

标签 javascript jquery focus blur placeholder

我有以下代码,当用户选择一个输入框时,该值将消失,但一旦用户点击它,默认值将被重新插入。

        $(function() {
            var defaultText = '';
            $('input[id=input]').focus(function() {
                defaultText = $(this).val();
                $(this).val('');
            });
            $('input[id=input]').blur(function() {
                $(this).val(defaultText); 
             });
         });

然而,这并不是我想要的。如果用户插入文本,我不希望默认文本覆盖用户输入的内容。我也是 jQuery 的新手,所以非常感谢任何帮助。

最佳答案

在您的 focus() 方法中,您应该在清除它之前检查它是否等于 defaultText,在您的 blur() 中函数,您只需要在设置defaultText 之前检查val() 是否为空。如果您要使用多个输入,最好使用类而不是 ID,因此当类为“输入”时,您的选择器将是 input.input。即使它是一个 ID,您也可以将其引用为 input#input

// run when DOM is ready()
$(document).ready(function() {
    $('input.input').on('focus', function() {
        // On first focus, check to see if we have the default text saved
        // If not, save current value to data()
        if (!$(this).data('defaultText')) $(this).data('defaultText', $(this).val());

        // check to see if the input currently equals the default before clearing it
        if ($(this).val()==$(this).data('defaultText')) $(this).val('');
    });
    $('input.input').on('blur', function() {
        // on blur, if there is no value, set the defaultText
        if ($(this).val()=='') $(this).val($(this).data('defaultText')); 
    });
});

this jsFiddle 中将其付诸实践.

关于javascript - jQuery 输入值焦点和模糊,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13182921/

相关文章:

javascript - 操作在 componentDidMount 内不起作用

javascript - 代码只有第一次运行良好,之后就会崩溃(DOM)

javascript - Mixpanel track_links 不适用于动态添加的元素

javascript - 焦点改变时保持文本选择

javascript - 当模型更改时, View 中的列表不会更新

javascript - 等待两秒钟然后在 jquery 中自动重定向另一个页面?

javascript - 发送表单后如何重定向到 JS/jQuery 中的另一个页面?

php - 通过 jQuery ajax 发送的内容被截断

java - 当我在 JTextField 中写入时,JPopupMenu 会自动调整大小

css - Firefox:CSS:按钮聚焦时更改样式