2013-11-21 78 views
0

我正在编写一个数独谜题(http://www.jsfiddle.net/sZ7Aq/4/)。它在IE上可以正常工作,但是当我在Google Chrome上尝试时,按钮在点击时不起作用。有没有办法解决这个问题,所以它适用于所有的浏览器?程序无法在Google Chrome上工作

请注意:我还没有完成它,所以没有一个智力发电功能。您必须自己输入所有号码。

这里是我的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> 
+1

使用'<按钮的onclick = “主要()”>检查我的回答',读以http:// EN .wikipedia。org/wiki/Unobtrusive_JavaScript –

+0

我相信jsfiddle有一个问题,你不能使用onclick =“main();”除非你执行工作。 – Sam

+1

看看这个答案: http://stackoverflow.com/questions/9114747/onclick-event-not-firing-on-jsfiddle-net – Sam

回答

0

使用阅读进度( '咔哒',主要);例如:

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

并且当然会添加id =“main”并从您的按钮中删除onclick。

Updated fiddle

然后打开您的控制台和修复其他错误...

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, ...], 

它会更详细,但它可以在更多的浏览器中工作。

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 
+0

使用 .onclick没有太多更好的...使用 .addEventListener('点击',功能)更多接受,因为您可以添加多个... – philwills

相关问题