2009-04-02 3 views
1

私は、単純なASP.NETページでこれを書いた:提出イベントがASP.NETのjQueryによってキャッチされないのはなぜですか?

jQuery(document).ready(function() { 
jQuery("form").submit(function() { 
    alert("kikoo"); 
    return false 
    }); 
}); 

を、私は(ボタン、リンク、...をクリックして)送信するとき、私は警告ボックスが表示されません。

はasp.netページ内の何かが「バイパス」を提出(私はjavascriptのメソッドdopostback考える)

は誰もが私に理由を教えてできることはありますか?

+0

ページには、ハンドラの設定を維持する可能性のあるjavascriptエラーがありますか? – tvanfosson

+0

正確にどこのページでこのブロックを実行しますか? – annakata

+0

私はjQueryと同じ問題に遭遇しました.Pitmingが示唆するように、ASP.NETフォームの投稿イベントを_DoPostbackアーキテクチャのためにキャプチャしていません。これを深刻に考えている人は誰もいないように思えます。 –

答えて

-1

問題が見つかりました。

ボタンをクリックすると、form.submitを実行するすべてのjavascriptメソッドが呼び出されます。これはjQueryによって捕らえられません。

私のボタンの動作を修正しても問題ありません。

ありがとうございました。

+0

解決策は見つかりましたか? –

0

jQuery submit()機能の使用について混乱させる可能性はありますか?

送信機能が実際にフォームを送信していると思われるため、ページの読み込み時に警告ダイアログが表示されると思われます。しかし、あなたがそれを使用している方法では、submit()関数は、実際にを実行してを送信すると、関数が実行されるように、フォームにイベントを添付するだけです。このような引数なしで実際にあなたのコードから提出トリガする

、あなたは(提出使用する必要があります):

$("form").submit(); 

ここで基礎としてマイク・Cの答えを使用して、拡張さ例です:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> 
<head> 
    <title>Title</title> 
    <script type="text/javascript" src="js/jquery-1.3.2.min.js"></script> 
    <script type="text/javascript"> 
    $(function() { 
     $("form").submit(function() { 
      alert("kikoo"); return false 
     }); 
     // you could also chain this onto the end of the previous function 
     $("form").submit(); 
    }); 
    </script> 
</head> 
<body> 
    <form><input type="submit" /></form> 
</body> 
</html> 
+0

OPは、提出をアクティブにするボタンを明示的に言及し、投稿されたコードのアラートはイベントハンドラを介して行います。 – annakata

+0

annakata:申し訳ありませんが、私はあなたの疑問に答えません。私の英語レベルは低すぎるようです。 Ryan:私はフォームを提出しようとしていません。私は、フォームが提出されたときに動作をバインドしようとしています。 – Pitming

+0

謝罪します。私は「ボタンをクリックして」という部分を見逃していました。私の答えの情報は、人の検索にはまだ役立つので、私はそれを残すだろうと思う。 –

0

Finaly doポストバックメソッドがハンドラをオーバーライドしていることがわかりました(まだ理解できません)。だからここ

は私がやったことです: 1.私はその後、私はその後、

jQuery(document).ready(function() { 
    jQuery("form").submit(EncodeAllTxtControl); 
}); 

3.結合 "クラシック" のjQueryをした

function MyBehaviour() 
{...} 

2. JS機能で自分の行動を宣言します各フォームで、私はミュウの振る舞いをしましたが、既に宣言されているものを保持します。

jQuery("form").each(function() { 
     var oldonSubmit = this.onsubmit; 
     if (typeof oldonSubmit != 'function') { 
      this.onsubmit = function() { 
       MyBehaviour(); 
       return true; 
      }; 
     } 
     else 
      this.onsubmit = function() { 
       MyBehaviour(); 
       oldonSubmit(); 
       return true; 
      }; 
    }); 

これはork。

関連する問題