状況:
- 私は単純なフォームを持っており、実際の送信の代わりに
.post()
-call ( ajax ) を呼び出します。 - 投稿は、要求を投稿
200 (OK)
し、応答本文に予期される文字列を含むステータスを受け取るように機能します (FireBug の Net-View に見られるように)。
質問:
- を含む無名関数
alert()
は実行されません。何故ですか?
ノート:
- メソッドがいつ起動するかを示すアラートを挿入しました
- 便宜上、コードの下にフィドル リンクを追加します。
コード:
ここに私のフォームがあります:
<form>
<input type="submit" value="Submit" />
</form>
これは私が期待していたものでした:
$(document).ready(function () {
$('form').submit(function (e) {
e.preventDefault();
$.post('/echo/html/', {
html: "<span>jsFiddle test return msg</span>",
delay: 1
}, function (data, textStatus, jqXHR) {
$('form').append(data);
alert("done"); // <----- THIS NEVER FIRES
}, 'json');
});
});
これはどちらも機能しません:
$(document).ready(function () {
$('form').submit(function (e) {
e.preventDefault();
$.post('/echo/html/', {
html: "<span>jsFiddle test return msg</span>",
delay: 1
}, null, 'json').done(function (data, textStatus, jqXHR) {
$('form').append(data);
alert("done"); // <----- THIS NEVER FIRES
});
});
});
これによりアラートがトリガーされますが、データは空になります。
$(document).ready(function () {
$('form').submit(function (e) {
e.preventDefault();
$.post('/echo/html/', {
html: "<span>jsFiddle test return msg</span>",
delay: 1,
success: function (data, textStatus, jqXHR) {
$('form').append(data); // <----- DATA IS UNDEFINED
alert("done"); // <----- THIS FIRES!
}
}, null, 'json');
});
});