添加className不适用于特定字段

时间:2016-01-12 17:22:44

标签: javascript html css classname

我有一个检查字段是否为空的函数。如果是,它将指定一个错误类,将其绘制为红色。它适用于我的形式的所有领域,但一个。 在那个上它只是将class属性添加到元素而没有任何值。

这是我的功能

function validateEmptyPass(pass) {
    var a = $('#password-conf');
    var error = "";
    var fieldName;
    if (a[0].value.length === 0) {
        a[0].className ="errorField"
        error= "password field empty"
    } else {
        a[0].className = '';     
    }
    return error;   

这是元素发生的事情。

<input id="password-conf" name="passwordConf" rel="Password Confirmation" placeholder="password confirmation" type="password" maxlength="25" tabindex="5" class="">

它恰好发生在那个领域你知道为什么吗?

非常感谢你!

3 个答案:

答案 0 :(得分:1)

由于您使用的是jQuery,因此可以使用.addClass:

a[0].addClass("errorField");

https://api.jquery.com/addclass/

使用原生JavaScript:

a[0].classList.add("errorField");

答案 1 :(得分:1)

必须是不同的东西,这是错误的。也许你的班级? 请告诉我们CSS代码。

这是一个有效的代码:

function validateEmptyPass(pass) {
  var a = $('#password-conf');
  var error = "";
  var fieldName;
  if (a[0].value.length === 0) {
    a[0].className = "errorField"
    error = "password field empty"
  } else {
    a[0].className = '';
  }
  return error;
}
.errorField {
  background: red;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input id="password-conf" name="passwordConf" rel="Password Confirmation" placeholder="password confirmation" type="password" maxlength="25" tabindex="5" class="">

<input type="button" onclick="validateEmptyPass()" value="validateEmptyPass()" />

答案 2 :(得分:1)

if (!a[0].value) {
        a[0].className ="errorField"
        error= "password field empty"
    } else {
        a[0].className = '';     
    }