【问题标题】:jsfiddle question [duplicate]jsfiddle问题[重复]
【发布时间】:2011-10-13 00:11:42
【问题描述】:

我无法让这个极其简单的 jsfiddle 工作。它只是应该在单击按钮时提醒测试。我在这里错过了什么?

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

【问题讨论】:

  • 很好的解释,谢谢。
  • 简单备注:不要绑定click,最好是trapsubmit事件!

标签: javascript jsfiddle document-ready nowrap


【解决方案1】:

您必须将加载方法更改为不换行(头部)。

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

【讨论】:

  • 具体来说:onDomReady 包装了函数,它只存在于该范围内。 no wrap 表示该函数存在于全局范围内。
【解决方案2】:

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

$(function() {

});

这会导致范围问题。您可以尝试以下方法。

window.validateForm = function() {
}

【讨论】:

    【解决方案3】:

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

    【讨论】:

      【解决方案4】:

      here

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

      更“jQuery-ish”的方法是使用 jQuery 来处理 click 事件,如下所示:

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

      有关该建议的示例,请参阅 here

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-03-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-02-02
        相关资源
        最近更新 更多