6

この非常に単純なjsfiddleを機能させることができません。ボタンがクリックされたときにテストを警告することになっています。ここで何が欠けていますか?

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

4

4 に答える 4

8

ロード方法をラップなし (ヘッド) に変更する必要があります。

これは、JavaScript がどのようにロードされるか、およびメソッド シグネチャがいつ読み取られるかに関係があります。http://jsfiddle.net/u9nG6/11/

于 2011-07-25T23:27:14.803 に答える
2

jQuery フレームワークが読み込まれるように選択されてonDomReadyいるため、関数は jQuery 匿名関数にラップされ、表示され$(function(){ });ません。jQuery を変更してロードするno wrap (head)か、関数をグローバル スコープで定義します。

于 2011-07-25T23:29:07.027 に答える
2

ここを参照してください。

validateFormそのような HTML で関数を使用できるようにするには、関数をグローバル スコープで定義する必要がありました。それ以外の場合は、イベントのスコープで関数として定義されていたため、onDomReadyそのスコープ外ではアクセスできません。

より「jQueryっぽい」アプローチは、jQueryを使用して次のclickようにイベントを処理することです。

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

その提案の例については、こちらを参照してください。

于 2011-07-25T23:29:07.387 に答える
0

jquery + ondomready を使用しています。これは、あなたが書いたすべてのJavaScriptが内部に配置されることを意味します

$(function() {

});

これはスコープの問題につながります。代わりに以下を試すことができます。

window.validateForm = function() {
}
于 2011-07-25T23:28:38.417 に答える