对于Css禁用按钮,颜色仅更改一次

时间:2017-10-06 07:34:36

标签: jquery html css

我试图更改我的按钮颜色,一旦它从禁用启用,但这只发生一次。我改变颜色的逻辑如下:

function validate(){
  if ($("#password").val().length > 4 && $("#token").val().length > 4) {
    $("#validateSign ").css({
      "background-color": "#f1f1f1",
      "background-image": "url(../../images/images/bg_btn_transaction.gif)",
      "border-color": "#428d0a",
      "color":" #428d0a",
      "border-right": "1px solid #428d0a",
      "border-bottom": "1px solid #428d0a",
      "cursor":" pointer"
    }).prop("disabled", false);
  } else {
    $("#validateSign") .prop("disabled", true);
  }
}

我从我的jQuery function.ready()调用:

validate();
$("#password, #token").keyup(validate);

它改变颜色但只改变一次。感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

你必须在else {条件下将所有css撤消到默认状态。

为了更简单的方法,你应该创建css:

.nope {
    background-color: #f1f1f1;
    background-image: url(../../images/images/bg_btn_transaction.gif);
    border-color: #428d0a;
    color: #428d0a;
    border-right: 1px solid #428d0a;
    border-bottom: 1px solid #428d0a;
    cursor: pointer;
}

然后你的jQuery应该是:

function validate(){
  if ($("#password").val().length > 4 && $("#token").val().length > 4) {
    $("#validateSign ").addClass('nope').prop("disabled", false);
  } else {
    $("#validateSign") .removeClass('nope').prop("disabled", true);
  }
}