在输入中找到大写字母时更改图像

时间:2016-12-09 21:35:58

标签: javascript jquery css

我正在尝试检查密码输入中是否至少有一个大写字母,如果是,请更改默认'删除'将图像更改为复选标记图像。

有人看到我做错了吗?



$('#register').keyup(function() {
  var upperCase = $("#upperCase").val();
  var upperCaseValid = upperCase.toUpperCase().length >= 1;
  /*if (upperCaseValid == upperCaseValid.toUpperCase()) {
			$('#upperCase').attr('src', 'icons/collection/checkmark.png');
		}*/
  $('#upperCase').attr('src', upperCaseValid ? 'https://encrypted-tbn1.gstatic.com/images?q=tbn:ANd9GcQlyqJ14HYP1WclpK9RkJWo8jIDBkhTW0GS31AxRkozAEA72ULhY89LIzk' : 'icons/collection/delete.png');
});

#password-check {
  margin: 30px auto;
}
.password-check-field {
  color: black;
}
.password-check-field img {
  margin-right: 15px;
  height: 15px;
  width: 15px;
}

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<form action="" method="POST" id="register">
  <div class="field">
    <label for="firstname">First Name</label>
    <input type="text" name="firstname" required>
  </div>
  <div class="field">
    <label for="password">Choose a password</label>
    <input type="password" name="password" id="password" required>
  </div>
  <div class="password-check-field">
    <img id="upperCase" src="icons/collection/delete.png" alt="Success">Your password has at least 1 capital letter
  </div>
</form>
&#13;
&#13;
&#13;

2 个答案:

答案 0 :(得分:1)

要检查字符串是否包含大写字符,您可以使用正则表达式,特别是[A-Z]。另请注意,在您的示例中,您要检查#upperCase元素的值,即图像。我认为选择器应该是#password。试试这个;

&#13;
&#13;
$('#register').keyup(function() {
  var upperCaseValid = $("#password").val().match(/[A-Z]/g);
  $('#upperCase').attr('src', upperCaseValid ? 'https://encrypted-tbn1.gstatic.com/images?q=tbn:ANd9GcQlyqJ14HYP1WclpK9RkJWo8jIDBkhTW0GS31AxRkozAEA72ULhY89LIzk' : 'icons/collection/delete.png');
});
&#13;
#password-check {
  margin: 30px auto;
}
.password-check-field {
  color: black;
}
.password-check-field img {
  margin-right: 15px;
  height: 15px;
  width: 15px;
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<form action="" method="POST" id="register">
  <div class="field">
    <label for="firstname">First Name</label>
    <input type="text" name="firstname" required>
  </div>
  <div class="field">
    <label for="password">Choose a password</label>
    <input type="password" name="password" id="password" required>
  </div>
  <div class="password-check-field">
    <img id="upperCase" src="icons/collection/delete.png" alt="Success">Your password has at least 1 capital letter
  </div>
</form>
&#13;
&#13;
&#13;

答案 1 :(得分:1)

尝试使用此(我使用的是文本而不是图像):

{{1}}

https://jsfiddle.net/bz2zLsbs/

最好的问候 Krysztof