У меня возникли проблемы с отправкой и проверкой формы с помощью кнопки вне формы, используя Yii2.Yii2: Внесите и подтвердите свою форму, нажав кнопку возле формы
Это мой случай:
У меня есть форма (Myform) и кнопку отправки (MyButton) внутри этой формы. Когда я нажимаю на myButton, выполняется проверка, и если проверка не выполняется, то подача не выполняется. Это, конечно, ожидается, и это работает.
Однако, что я действительно хочу, чтобы представить Myform, нажав на MyButton, который находится за пределами элемента формы. Чтобы это сделать, я просто вызываю jQuery ('myForm'). Submit(), и подача работает.
Проблема, с которой я столкнулся с этим последним сценарием, заключается в том, что проверка не удалась, но форма еще не отправлена, что не ожидается.
Как я могу отправить форму с помощью кнопки вне формы и выполнить проверку?
Это мое мнение:
<?php
$form = ActiveForm::begin([
'validateOnSubmit' => true,
'type' => ActiveForm::TYPE_VERTICAL,
'options' => ['class' => 'main-task-form']
]);
echo Form::widget([
'model' => $modelData,
'form' => $form,
'columns' => 2,
'attributes' => [
'closeDate' => [
'type'=> 'widget',
'widgetClass'=> DatePicker::className(),
'options'=>[
'type' => DatePicker::TYPE_COMPONENT_APPEND,
'pluginOptions' => [
'autoclose' => true,
'language' => 'es',
'format' => 'dd-mm-yyyy',
'todayBtn' => 'linked',
],
],
],
'descriptionClose' => [
'type'=>'textarea',
'options' => [
'rows' => 3,
],
],
],
]);
?>
<?php ActiveForm::end() ?>
<!-- Form Ends Here -->
<!-- Submit Button Outside Form -->
<?= Html::button('Completar Tarea', ['class' => 'btn btn-primary btn-task-form']) ?>
И это код Javascript, чтобы сказать кнопку вне формы, чтобы вызвать представить:
function assignCompleteButtonToTaskForm()
{
var completeButton = jQuery ('button.btn-task-form')[0];
var mainTaskForm = jQuery ('form.main-task-form')[0];
completeButton.onclick = function (e) {
mainTaskForm.submit();
}
}
Любая идея по этому поводу?
Также, как я могу инициировать непосредственно процесс проверки перед выполнением отправки вручную? Возможно, это поможет мне контролировать процесс отправки.
Да, это работает, подача работает как ожидалось. Проблема, с которой я сейчас сталкиваюсь, заключается в том, что отправка продолжается, даже когда проверка не выполняется. Я думаю, что это будет работать для большинства разработчиков, не являющихся разработчиками. –