javascript - 如何根据输入文本更改类名

标签 javascript html

我需要根据文本值更改输入的 class。当 value 为空时,它应该是默认值,当有 value 时,它应该将类更改为 inputtext

<style>
    .inputnotext{ background:#ddd; }
    .inputtext{ background:transparent } /* when their is text */
</style>

<form>
    <input class="inputnotext" type="text" name="firstname" /><br />
    <input class="inputnotext" type="text" name="lastname" />
</form> 

<script>
    /* script to write ??? */
</script>

最佳答案

这是一个你可以使用的 javascript:

var input = document.getElementsByTagName('input');

keyupHandler = function(input){
    if (input.value.length){
        input.setAttribute('class', 'inputnotext');
    }
    else {
        input.setAttribute('class', '');
    }
}

for (i=0; i<input.length; i++){
    input[i].onkeyup = function(){
        keyupHandler(this);
    }
    input[i].onchange = function(){
        keyupHandler(this);
    }
}

jsFiddle example

最新版本(使用事件监听器和类列表):

var input = document.getElementsByTagName('input');

input.addEventListener('keyup', (e) => {
    e.target.classList.toggle("inputnotext", e.target.value );
});

jsFiddle example

关于javascript - 如何根据输入文本更改类名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8309114/

相关文章:

css - 当我将鼠标悬停在我的 div 上时,如何让我的文本消失?

javascript - 确定 LI 是否溢出的函数

javascript - Raphaël 圆环图单击和取消单击部分

javascript - 如何在选项元素内创建中断

php - 在 jQuery 中设置?

HTML5 视频 (video.js) 未在 Chrome 中加载 (2)

javascript - 使用路径id获取SVG路径d属性

javascript - 如何根据javascript中的打开输入来验证文本框

javascript - img src 或其他选择器的 AngularJS 正则表达式 json 数据

php - 从 HTML 选择列表中获取所有选项