javascript - 如何在不重复 jQuery addClass 的情况下做得更好?

标签 javascript jquery forms

在我的表单上,当页面加载时,我将输入中的默认文本设置为浅灰色,如下所示:

var formInputs = $('#notifyForm input');
formInputs.addClass('defaultText');

然后我使用 removeClass 让它们在聚焦时变回黑色。这一切都很好。我遇到的问题是,如果出现错误并且页面重新加载以显示 PHP 错误消息,则仍在输入中的用户文本将变为灰色。我的解决方案是:

formInputs.addClass(function()
{
    if($(this).attr('value') === $(this).attr('title'))
    {
        $(this).addClass('defaultText');
    }
});

但我知道在 addClass 处理程序中调用 addClass 一定有问题。谁能建议一个更好的方法来做到这一点?谢谢。

最佳答案

从传递给 addClass 的函数中,您可以返回一个字符串,这将是您要添加的类名。试试这个:

formInputs.addClass(function() {
    if (this.value === this.title)
        return 'defaultText';
});

关于javascript - 如何在不重复 jQuery addClass 的情况下做得更好?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14137730/

相关文章:

javascript - Protractor + Simple-SSH 如何在 Jasmine 中同步

javascript - 变量返回 [object HTMLParagraphElement]

javascript - Magento 联系表 : How to stop submitting and sending hidden values to email

javascript - 多页表单提交

django - csrf_token 的问题

forms - angular dart 形式的 ng-valid 和 ng-invalid 类不再暴露

javascript - 检索 JSON 对象列表中的最后一个对象

javascript - npm Bootstrap 不适用于新的 React 项目

javascript - 粘性页脚内的粘性页脚

Javascript 增加输入结果并包含逗号