JSFiddle问题

6

我无法让这个非常简单的jsfiddle工作。它只是在按钮被点击时应该弹出测试警报。我错过了什么?

http://jsfiddle.net/u9nG6/2/


简单说明:与其绑定 click,最好捕获 submit 事件! - F. Hauri - Give Up GitHub
4个回答

8

您需要将加载方法更改为“no wrap(head)”。

这与JavaScript的加载方式以及何时读取方法签名有关。 http://jsfiddle.net/u9nG6/11/


1
具体来说:onDomReady将函数包装起来,它只存在于该范围内。no wrap表示该函数存在于全局范围内。 - James Khoury

2

选择jQuery框架来加载onDomReady,因此您的函数被包裹在jQuery匿名函数$(function(){ });中,不可见。要么将jQuery更改为以no wrap (head)方式加载,要么在全局范围内定义您的函数。


2

请看这里

您需要在全局范围内定义validateForm函数,以便能够像这样在HTML中使用它。否则,您已将其定义为onDomReady事件作用域内的函数,该作用域之外无法访问。

一种更“jQuery风格”的方法是使用jQuery处理click事件,如下所示:

$("#id_btnSubmit").click(validateForm);

这里有一个关于该建议的示例,可以点击这里查看。


0

你正在使用jquery + ondomready。这意味着你编写的任何javascript都被放置在其中。

$(function() {

并且

});

这会导致作用域问题。你可以尝试以下方法。

window.validateForm = function() {
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接