javascript - JQUERY - 函数内的 If 语句不起作用

标签 javascript jquery forms

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

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

我编写了以下代码来执行此操作。

//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;

        }

    });

更改函数内的 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 changed 的起始值为 false,然后满足第一个 if 条件...它将 changed 的值更改为 true 。然后再次检查第二个条件,它将被满足,因为 changed 的值已经被第一个 if 更改,因此第二个 block 也会被调用...因此它否定第一个 block 所做的所有更改。

<小时/>

但看起来可以简化为

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;
});

关于javascript - JQUERY - 函数内的 If 语句不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21337362/

相关文章:

javascript - 如何为每列设置单独的柱形图颜色?

javascript - 调整元素大小和浏览器窗口大小

javascript - 上下移动行后如何在数据表中保留复选框 "checked"

C# Forms - 使用 Paint 方法?

javascript - 使html post表单提交后自动返回

javascript - 滚动时如何更新CSS位置

javascript - 根据数据属性显示/隐藏带有 id 的 div (onclick)

jquery - 为什么淡入/淡出只能工作一次?

java - Java 中的 HTML 表单处理

javascript - JQuery fadeIn() 不工作——简单的例子