Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 我将如何更改用户类型时输入的类?_Javascript_Jquery_Css_Input_Passwords - Fatal编程技术网

Javascript 我将如何更改用户类型时输入的类?

Javascript 我将如何更改用户类型时输入的类?,javascript,jquery,css,input,passwords,Javascript,Jquery,Css,Input,Passwords,我试图在用户输入密码时更改密码确认输入的颜色。如果匹配,边框将变为绿色,如果不匹配,边框将变为红色 以下是JQuery: var createPass = $("#createPass").val(); var confirmPass = $("#confirmPass").val(); $("#confirmPass").keydown(function() { if(confirmPass == createPass && confirmPass != "") {

我试图在用户输入密码时更改密码确认输入的颜色。如果匹配,边框将变为绿色,如果不匹配,边框将变为红色

以下是JQuery:

var createPass = $("#createPass").val();
var confirmPass = $("#confirmPass").val();

$("#confirmPass").keydown(function() {

   if(confirmPass == createPass && confirmPass != "") {
      confirmPass.addClass("inputCorrect")
   } else {
      confirmPass.addClass("inputIncorect");
   }
});
html:

<label for="passWord">Create Password</label>
<input type="password" id="createPass" name="passWord" class="inputBox"  placeholder="Minimum 8 characters" required><br>

<label>Confirm Password</label>
<input type="password" id="confirmPass" class="inputBox" required>
我也先尝试了以下JQuery,但它似乎有点长:

$("input[id=confirmPass").keyup(function() {

   if ($("input[id=confirmPass]").val() == $("input[id=createPass]").val()) {

       ($("input[id=confirmPass]").removeClass("passIncorrect"));
       ($("input[id=confirmPass]").addClass("passCorrect"));

   }

   if ($("input[id=confirmPass]").val() != $("input[id=createPass]").val() && ($("input[id=confirmPass]") != "")) {

       ($("input[id=confirmPass]").removeClass("passCorrect"));
       ($("input[id=confirmPass]").addClass("passIncorrect"));

   }

});
我尝试过使用
.keyup()
.keydown()
.keypress()
.change()
,并重命名了几乎所有的类、id和变量,但都没有成功!它在一个单独的
.js
文件中,我尝试了使用
$(document).ready()
和不使用
$(document).ready()的方法,但它不起作用。我也尝试过使用
.css()
而不是
.addClass
.removeClass


任何帮助都将不胜感激

以下是使其工作的固定Javascript:

var createPass = $("#createPass");
var confirmPass = $("#confirmPass");

confirmPass.keydown(function() {
    // Remove both classes
   confirmPass.removeClass("passCorrect passIncorrect");

   // Add the appropriate class
   if (confirmPass.val() == createPass.val() && confirmPass.val() != "") {
      confirmPass.addClass("passCorrect");
   } else {
      confirmPass.addClass("passIncorrect");
   }
});
以下是一些事先不起作用的事情:

  • 在执行代码confirmPass.addClass(“inputCorrect”)
时,您正在向整数值添加一个类
  • 在javascript中,您添加了“inputCorrect”和“inputCorrect”类,但在CSS中,您将这些类称为“passCorrect”和“passCorrect”
  • 您需要在用户每次按键时获取createPass和confirmPass的值,否则您在开始时声明的两个变量将始终包含两个输入的初始值
  • 您需要在用户每次按键时删除输入的类,否则这两个类都将应用于输入

  • 您是否应该在第一个示例中每次按下一个键时获取“confirmPass”值,以获取实际值?请尝试输入事件建议:1)您在“addClass”中拼写错误。2) 如果您需要这方面的帮助,我建议您创建一个JSFiddle或类似的。在添加“passCorrect”之前,您需要删除类“passCorrect”。实际上,为每个循环删除类“passIncorrect”并在满足条件时再次添加它是一个好主意。谢谢Asher!它在我的网站上不起作用,但它正在做我想做的事情。我认为这可能是另外一个错误,因为JavaScript或JQuery都没有简单的测试。我还得再深入一点,但一旦这段代码全部修复,我肯定会使用它。
    var createPass = $("#createPass");
    var confirmPass = $("#confirmPass");
    
    confirmPass.keydown(function() {
        // Remove both classes
       confirmPass.removeClass("passCorrect passIncorrect");
    
       // Add the appropriate class
       if (confirmPass.val() == createPass.val() && confirmPass.val() != "") {
          confirmPass.addClass("passCorrect");
       } else {
          confirmPass.addClass("passIncorrect");
       }
    });