为什么我的javascript函数完全被忽略了? (非常简单的例子)

时间:2015-05-22 10:55:57

标签: javascript jquery

我有两个按钮。保存并撤消。他们执行一个javascript,最后他们调用resetButtons(),这意味着禁用按钮,直到用户输入发生任何其他变化。这段代码已经工作了一年多了,但是在实现一些新功能时,这个功能已经破了。

以下是代码的直接摘录:

function undo(){
    var r = confirm("Are you sure you want to cancel your inputs?");
    if (r == true) {
        setLoadedValues();  //calls in the cached previous values
        updateAllBoxValues();  //updates view
        console.log("before resetting buttons");
        resetButtons();
        console.log("after resetting buttons");
    }
}

function resetButtons(){
    console.log("resetting buttons");
    $(".save").addClass("disabled");
    $('.save').attr('disabled', 'disabled');
    $(".undo").addClass('disabled');
    $('.undo').attr('disabled', 'disabled');
    console.log("done resetting buttons");
}

这给出了以下输出:

before resetting buttons
after resetting buttons

我怀疑使用括号进行了一些错误的格式化,但这是代码的直接代码段,如果undo()有效,那么resetButtons()也应该如此,对吧?此外,如果是这种情况,我应该被赋予未定义的函数,或 unexpecetd输入结束或类似的东西。单击“保存”按钮时,也会忽略对resetButtons的调用。我搞不清楚了。帮助

3 个答案:

答案 0 :(得分:3)

您有一个重复的功能定义。重命名其中一个。

答案 1 :(得分:1)

你的代码看起来很好,你必须在其他地方有一些其他的错误(就像这两个命名的函数一样)。

顺便说一句,我建议使用jQuery" prop"更改已禁用属性的方法:

$('foo').prop('disabled', true);

$('foo').prop('disabled', false);

答案 2 :(得分:1)

尝试在控制台中触发resetButton()函数,如果有问题则应该返回它。在随机控制台中测试它会提供它应该的所有日志,但我不能保证选择器。错误可能在代码的其他地方。