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 ofchanged
为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 ofchanged
为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(更改?无更改:更改);
改变了=!改变了;
});