Потому что каждый раз, когда вы нажимаете кнопку, она присоединяет к вашей форме еще одну отправку.Мне кажется, что вы пытаетесь добиться следующего:
$(document).ready(function() {
$('#new-post').click(function(event) {
$(this).newPost({
title : 'New Post Form',
type : '1'
});
return false;
});
});
(function($) {
$.fn.newPost = function(options) {
var defaults = {
container : '#post-popup',
title : 'New Post',
type : ''
};
var settings = $.extend({}, defaults, options);
$(settings.container).dialog({
autoOpen : false,
width : 765,
modal : false,
resizable : false,
title : settings.title,
close : function (event, ui) { $(this).dialog('destroy'); }
}).dialog('open');
event.preventDefault();
var form = $(settings.container);
var formData = {
postTitle : $('#title').val(),
postBody : $('#body').val(),
postType : settings.type
};
$.ajax({
type : 'POST',
url : form.attr('action'),
data : formData,
success : function(data) {
$(form).get(0).reset();
$(form).dialog('close').dialog('destroy');
},
error : function() {
}
});
};
})(jQuery);
Я работаю в предположении, что при каждом нажатии кнопки #new-post
вы хотите собрать некоторые данные и отправить запрос ajaxсоздать новый пост - затем сбросить форму.Виновным был $(settings.container).submit(function() {
тебе не нужен этот парень.Он назначал другое событие каждый раз, когда вы нажимали кнопку, поэтому вы видели столько запросов ajax, сколько раз была нажата кнопка.