我敢肯定,当我发现问题所在时,我会恨自己,但我终其一生都无法弄清楚为什么这不起作用。我在网站的其他地方使用 setTimeout 就像这样,它工作正常。
<input type='button' value='Submit Form' onclick='ValidateForm()'/>
var submitFinalTimeout;
function ValidateForm() {
//Performing a number of validations which may return false;
//I know that the following if condition evaluates as true. But just for giggles I tried moving it outside of the if and it still never fires.
if (types.indexOf("K2") != -1) {
submitFinalTimeout = window.setTimeout(function () { alert("Timeout set"); }, 2000);
validateK2();
return true;
}
return true;
}
当我说验证时,我的意思是如果发现问题并返回 false 以阻止验证继续,我会提醒用户。返回值 true 或 false 不影响页面是否发帖。
我还尝试删除花括号内的所有其他内容,以确保没有其他代码与之冲突。我确实尝试使用 ValidateForm 函数删除除 setTimeout 之外的所有其他代码,但它仍然不会触发。
我看到了一个类似的帖子,问题是页面上的其他一些 javascript 错误导致它无法工作。但是我在 Chrome 中的开发者控制台和 firebug 都没有在页面上显示任何错误或任何类型。只是关于解释图像的一些警告。