Javascript JQUERY-函数中的If语句赢得';行不通

Javascript JQUERY-函数中的If语句赢得';行不通,javascript,jquery,forms,Javascript,Jquery,Forms,我有一个函数,用于侦听复选框的更改。加载页面时,复选框将被勾选或取消勾选,具体取决于之前完成的步骤 我想记录复选框是否更改。如果它被更改,然后再次更改,它将被重置为开始时的值,因此意味着它的值没有更改 为此,我编写了以下代码 //Checkboxes var change ="<input class=\"changed\" type=\"hidden\" name=\"changed\" value=\"1\"/>"; var nochange ="<inpu

我有一个函数,用于侦听复选框的更改。加载页面时,复选框将被勾选或取消勾选,具体取决于之前完成的步骤

我想记录复选框是否更改。如果它被更改,然后再次更改,它将被重置为开始时的值,因此意味着它的值没有更改

为此,我编写了以下代码

//Checkboxes
    var change ="<input class=\"changed\" type=\"hidden\" name=\"changed\" value=\"1\"/>";
    var nochange ="<input class=\"changed\" type=\"hidden\" name=\"changed\" value=\"0\"/>";
    var changed=false;
    $(".change-event").change(function(){
        //alert("checked");

        if(changed==false) {
            $(this).next(".changed").remove();
            $(this).after(change);
            changed=true;
        }   

        if(changed==true) {

            $(this).next(".changed").remove();
            $(this).after(nochange);
            changed=false;

        }

    });
//复选框
var change=“”;
var nochange=“”;
var=false;
$(“.change事件”).change(函数(){
//警报(“已检查”);
如果(更改==false){
$(this.next(“.changed”).remove();
$(此)。在(更改)之后;
更改=正确;
}   
如果(已更改==true){
$(this.next(“.changed”).remove();
美元(本)。之后(无变化);
更改=错误;
}
});
change函数中的if语句不起作用。更改功能本身没有问题,因为注释掉的警报工作正常

我也尝试了if(!checked)和if(checked)作为条件,但仍然不起作用

感谢您的帮助。

您需要帮助

    if(changed==false) {
        $(this).next(".changed").remove();
        $(this).after(change);
        changed=true;
    } else {

        $(this).next(".changed").remove();
        $(this).after(nochange);
        changed=false;

    }
else at start value of
changed
为false,则第一个if条件满足。。。它将
changed
的值更改为
true
。然后再次检查第二个条件,因为第一个
已更改
的值,如果
已更改,则第二个块也将被调用,因此第二个条件将得到满足。。。因此,它否定了第一个块所做的所有更改


但它看起来可以简化为

var change = "<input class=\"changed\" type=\"hidden\" name=\"changed\" value=\"1\"/>";
var nochange = "<input class=\"changed\" type=\"hidden\" name=\"changed\" value=\"0\"/>";
var changed = false;
$(".change-event").change(function () {
    $(this).next(".changed").remove();
    $(this).after(changed ? nochange : change);
    changed = !changed;
});
var change=”“;
var nochange=“”;
var=false;
$(“.change事件”).change(函数(){
$(this.next(“.changed”).remove();
$(此).after(更改?无更改:更改);
改变了=!改变了;
});
您需要

    if(changed==false) {
        $(this).next(".changed").remove();
        $(this).after(change);
        changed=true;
    } else {

        $(this).next(".changed").remove();
        $(this).after(nochange);
        changed=false;

    }
else at start value of
changed
为false,则第一个if条件满足。。。它将
changed
的值更改为
true
。然后再次检查第二个条件,因为第一个
已更改
的值,如果
已更改,则第二个块也将被调用,因此第二个条件将得到满足。。。因此,它否定了第一个块所做的所有更改


但它看起来可以简化为

var change = "<input class=\"changed\" type=\"hidden\" name=\"changed\" value=\"1\"/>";
var nochange = "<input class=\"changed\" type=\"hidden\" name=\"changed\" value=\"0\"/>";
var changed = false;
$(".change-event").change(function () {
    $(this).next(".changed").remove();
    $(this).after(changed ? nochange : change);
    changed = !changed;
});
var change=”“;
var nochange=“”;
var=false;
$(“.change事件”).change(函数(){
$(this.next(“.changed”).remove();
$(此).after(更改?无更改:更改);
改变了=!改变了;
});