我使用jQuery将信息发布到PHP文件,并且我刚刚意识到该帖子每次都会翻倍。例如,我第一次按它,它会发布一次,当我回去并更改我的表单信息并再次提交时,它会发布两次。如果我再做一遍,它会发布四次,然后是八,十六,等等。使我的应用程序非常缓慢。我已经发布了下面按钮按下的代码。任何可能导致双重职位增加的想法?顺便说一句,我用Firebug找到这个故障。
$("#preferenceSubmit").click(function() {
var selected = $('#preferenceTabs').tabs().tabs('option', 'selected');
// alert($('input:checkbox[name=dayNight-radio]:checked').val());
// ----------------------------------- Simple Time Preference ---------------------------------------------- //
// e.preventDefault();
// MONDAY, WEDNESDAY, FRIDAY --------------------------------
MWFStart = convertTime($('#MWFStartHour').val(),$('#MWFStartMinute').val(),$('#MWFStartMeridian').val());
MWFEnd = convertTime($('#MWFEndHour').val(),$('#MWFEndMinute').val(),$('#MWFEndMeridian').val());
// TUESDAY, THURSDAY --------------------------------
TRStart = convertTime($('#TRStartHour').val(),$('#TRStartMinute').val(),$('#TRStartMeridian').val());
TREnd = convertTime($('#TREndHour').val(),$('#TREndMinute').val(),$('#TREndMeridian').val());
// ----------------------------------- Advanced Time Preference ---------------------------------------------- //
// MONDAY --------------------------------
MStart = convertTime($('#MStartHour').val(),$('#MStartMinute').val(),$('#MStartMeridian').val());
MEnd = convertTime($('#MEndHour').val(),$('#MEndMinute').val(),$('#MEndMeridian').val());
// TUESDAY --------------------------------
TStart = convertTime($('#TStartHour').val(),$('#TStartMinute').val(),$('#TStartMeridian').val());
TEnd = convertTime($('#TEndHour').val(),$('#TEndMinute').val(),$('#TEndMeridian').val());
// WEDNESDAY --------------------------------
WStart = convertTime($('#WStartHour').val(),$('#WStartMinute').val(),$('#WStartMeridian').val());
WEnd = convertTime($('#WEndHour').val(),$('#WEndMinute').val(),$('#WEndMeridian').val());
// THURSDAY --------------------------------
RStart = convertTime($('#RStartHour').val(),$('#RStartMinute').val(),$('#RStartMeridian').val());
REnd = convertTime($('#REndHour').val(),$('#REndMinute').val(),$('#REndMeridian').val());
// FRIDAY --------------------------------
FStart = convertTime($('#FStartHour').val(),$('#FStartMinute').val(),$('#FStartMeridian').val());
FEnd = convertTime($('#FEndHour').val(),$('#FEndMinute').val(),$('#FEndMeridian').val());
// Since SEMESTER is a must for searching for classes, we must create some sort of error notifying the user of the issue. Same goes with adding NO classes.
// Create IF statement, and check for an empty string.
// Also create an error if Time Preference times are incorrect, for example, if Starting time > ending time is not valid.
$.post('search.php', { 'searchClasses[]':tbl.fnGetData(), 'semester' :$('#term').val(), 'MWFStart' : MWFStart, 'MWFEnd' : MWFEnd, 'TRStart' : TRStart, 'TREnd' : TREnd, 'MStart' : MStart, 'MEnd' : MEnd, 'TStart' : TStart, 'TEnd' : TEnd, 'WStart' : WStart, 'WEnd' : WEnd, 'RStart' : RStart, 'REnd' : REnd, 'FStart' : FStart, 'FEnd' : FEnd, 'WeekendStart' : WeekendStart, 'WeekendEnd' : WeekendEnd, 'selectedPreference' : selected} , function(data) {
$("#resultTblContainer").html(data);
var resultTbl = $("#resultTblContainer > table").dataTable({
"bAutoWidth": true,
"bPaginate": false,
"bLengthChange": true,
"bFilter": false,
"bSort": false,
"bInfo": false,
"bJQueryUI": true
});
$("#tabs").tabs("select", $("#tabs").tabs("length")-1);
resultTbl.css('width', '100%'); //make sure table fills its container
});
});
您能否显示一些标记? :) – 2012-03-27 05:17:40
当然,好吧,基本上在POST区域。我提交了用户输入的项目列表(数组)以及一系列文本输入,这些输入是列出的所有其他变量。然后构建一个表格,以便稍后可以在php脚本中的工作完成后显示结果。我真的没有看到任何可能导致它多次POST的东西。 – 2012-03-27 05:41:11
顺便说一句,我使用的DataTables jQuery插件 – 2012-03-27 05:43:49