程序无法在Google Chrome上运行

时间:2013-11-21 03:21:08

标签: javascript html css google-chrome

我正在编写一个数独谜题(http://www.jsfiddle.net/sZ7Aq/4/)。它在IE上运行正常,但是当我在谷歌浏览器上试用它时,按钮在我点击它时什么也不做。有没有办法解决它所以它适用于所有浏览器?

请注意:我还没有完成它,因此没有拼图生成功能。您必须自己输入所有数字。

这是我的main()函数(如果你还没有点击链接):

function main() {
    getcellVal();
    if (validate() == false) {
        alert("Something's not right!");
        return false;
    }
    alert("Good job!");
    return true;
}

我的按钮:

<button onclick="javascript: main()">Check my answer</button>

3 个答案:

答案 0 :(得分:0)

使用.addEventListener('click',main);例如:

var check = document.getElementById('check');
check.addEventListener('click', main);

然后添加id =“main”并从按钮中删除onclick。

Updated fiddle

然后打开你的控制台并修复其他错误...

答案 1 :(得分:0)

从你的jsfiddle,错误发生在你的getcellValue()函数中。此代码不正确:

colVal  =  [[x0y0.value, x0y1.value, x0y2.value, x0y3.value, x0y4.value, x0y5.value, x0y6.value, x0y7.value, x0y8.value],

我建议您将输入元素更改为具有与名称匹配的id属性。像这样:

<input type="text" name="x0y0" id="x0y0">

然后更改你的getcellVal()函数以使用getElementById函数。

colVal  =  [[document.getElementById("x0y0").value, ...],

它会更加冗长,但它可以在更多浏览器中使用。

答案 2 :(得分:0)

很少有事情需要纠正:

  • 使用不显眼的解决方案以编程方式注册必要的事件处理程序,而不是定义javascript: main()内联等事件。

例如:

<button id="buttonid">Check my answer</button>

window.onload = function() {
document.getElementById('buttonid').onclick = main;
};
  • 只能通过指定名称来访问DOM元素。在您的情况下,x0y0.value将不会返回任何内容。而是使用idclass名称来访问元素集。

例如:

<input type="text" name="x0y0" id="x0y0">

在javascript中,

document.getElementById("x0y0").value