В модальном окне с 2 input формами подключен ajax запрос на перехват нажатия кнопки отправки и пост запросом передает данные в бд. Проблема в том что скрипт не завершается. А висит и при следующим вызове модального окна он отработает уже 2 раза, вызвав еще раз отработает 3 раза и т.д. В консоле сам скрипт и висит.
Модальное окно
<?php
use kartik\widgets\DateTimePicker;
use yii\helpers\Html;
use yii\widgets\ActiveForm;
/** @var $shipping app\models\Courier */
/** @var $model app\models\Zakaz */
?>
<div class="zakaz-reminderForm">
<?php $form = ActiveForm::begin([
'id' => 'shippingZakaz',
]); ?>
<?= $form->field($comment, 'id_user')->hiddenInput(['value' => Yii::$app->user->id])->label(false) ?>
<?= $form->field($comment, 'id_zakaz')->hiddenInput(['value' => $model])->label(false) ?>
<?= $form-> field($comment, 'comment')->textInput(['placeholder' => 'Что', 'class' => 'inputForm', 'style' => 'float:left'])->label(false) ?>
<?= $form->field($comment, 'date')->widget(DateTimePicker::className() ,[
'pluginOptions' => [
'autoclose'=>true,
'startDate' => 'php Y-m-d H:i:s',
'todayBtn' => true,
'todayHighlight' => true,
],
'options' => [
'placeholder' => 'Срок',
],
])->label(false) ?>
<div class="form-group">
<?= Html::submitButton('Отправить', ['class' => 'action']) ?>
</div>
<?php ActiveForm::end(); ?>
<?php
$js = <<<JS
$('body').on('beforeSubmit', 'form', function(){
var data = $(this).serialize();
$.ajax({
url: '/frontend/web/comment/create-reminder?id=$model',
type: 'POST',
data: data,
success: function(res){
console.log(res);
},
error: function(){
alert('Error!');
}
});
$('.trigger success-trigger').trigger('click');
$('#modalReminder').modal('hide'); //закрытие модального окна.
/* alert('Напоминание создано!');*/
return false;
});
JS;
$this->registerJs($js);
?>
</div>
Вот так выглядит консольное окно:
Кнопкой вызывается скрипт открытия модального окна
`function modalView(button, modal) {
$('body').on('click', button, function(e){
e.preventDefault();
$(modal).modal('show')
.find('.modalContent')
.load($(this).attr('value'));
});
}`
Который вызывает
` <?php Modal::begin([
'id' => 'modalReminder',
'header' => '<h2>Поставить напоминание</h2>'
]);
echo '<div class="modalContent"></div>';
Modal::end(); ?>`
Надо после закрытия модального окна прописывать снятие обработчика события. $('#modalReminder').off('beforeSubmit', 'form')
Плюс лучше вешать обработчик не на body, а на модальное окно.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Вывожу на карту фотографии в виде маркеров, которые необходимо кластеризироватьВыводит ошибку: Uncaught TypeError: marker
Допустим есть две записи в таблице userТак как это одна из основных таблиц в системе, на которой завязанны множество других таблиц, триггеров...
Собственно говоря есть у меня огромная база, на несколько террабайтХочу вытащить FK для нее, где-то таким запросом