我有两个按钮。保存并撤消。他们执行一个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的调用。我搞不清楚了。帮助
答案 0 :(得分:3)
您有一个重复的功能定义。重命名其中一个。
答案 1 :(得分:1)
你的代码看起来很好,你必须在其他地方有一些其他的错误(就像这两个命名的函数一样)。
顺便说一句,我建议使用jQuery" prop"更改已禁用属性的方法:
$('foo').prop('disabled', true);
$('foo').prop('disabled', false);
答案 2 :(得分:1)
尝试在控制台中触发resetButton()函数,如果有问题则应该返回它。在随机控制台中测试它会提供它应该的所有日志,但我不能保证选择器。错误可能在代码的其他地方。