У меня есть проблема на моей странице с кодом, выполняющимся несколько раз в IE и Opera, хотя он работает в FF, Chrome и Safari. Я использую последнюю версию jQuery, плагин валидации и плагин формы. Мой код происходит от следующего HTML:
<form action="/case_study/php/survey_submit.php" id="mt_survey" method="post">
...
...
<fieldset id="submit_button_box">
<input id="submit_button" type="submit" value="Submit Case Data" />
</fieldset></form>
Когда я нажимаю кнопку отправки, запускается следующий jquery:
$('#mt_survey').submit(function() {
if ( ($("#mt_survey").valid() == true) || confirm("Unfinished form, continue saving as temporary?")) {
$('#mt_survey').ajaxSubmit({
data: {table: "mt_data"},
target: '#messages',
success: function() {
$('#messages').fadeIn('slow');
$( 'html, body' ).animate( { scrollTop: 0 }, 0 );}
});
}
return false;
});
Теперь это работает, когда я нажимаю кнопку отправки в первый раз. В этот момент форма очищается для следующего набора данных. Это делается с помощью следующего кода.
$('#clear_form').click(function() {
$("#mt_survey").resetForm();
$("#messages").replaceWith('<div id="messages"></div>');
$("#messages").hide();
$("#escort_div").hide();
$("#transport_a_div").hide();
$("#transport_l_div").hide();
$("#item_div").hide();
$("#item2_div").hide();
$("label.error").hide();
$("#correction_button").attr('disabled', 'disabled');
$("#submit_button").attr('disabled', '');
});
Теперь, когда это сделано, форма get снова заполняется, и снова нажимается на submit. Но на этот раз в IE и Opera его код запускается несколько раз. Я точно знаю, что он запускается несколько раз, так как я проверил, поместив туда оповещения, но в основном он вызывает мой файл «survey_submit.php» несколько раз и вставляет данные в MySQL. Есть идеи почему? Это мучило меня долгое время, и я не вижу причин, почему это так.