私は、次のしている:私は、UpdateボタンをクリックするとAjaxコールの後に私のフォームが提出されるのはなぜですか?
<form id="form" action="xxx" method="get">
<input type="checkbox" name="cb">
<button onclick="update();">Update</button>
</form>
<script>
function update() {
var data = $("#form").serialize();
$.ajax({
url: "/api/m/x",
type: "post",
data: data
}
).done(function(results,status) {
alert(status);
}).fail(function(error, status) {
alert(status);
});
}
</script>
、Ajax呼び出しは/api/m/x
に行われたとの警告のいずれかがトリガされました。ここまでは順調ですね。しかし、私は警告ダイアログを閉じた後、フォームが提出されます!ブラウザはxxx?cb=on
に送信されます(たとえば、チェックボックスをオンにした場合)。
どうしてですか?私のフォームには<input type='submit'>
要素がありません。誰がフォームの提出をトリガーしていますか?
update
機能にreturn false;
を追加しようとしましたが、動作は変わりません。フォーム内のボタンを持っている場合は、
はこのようにしてみてください、このボタンをクリックすると
ss – unixmiah
これは 'done'の権利ですか? –
送信しないように何もしていないので、 – j08691