Narzędzia użytkownika

Narzędzia witryny


formularz

Różnice

Różnice między wybraną wersją a wersją aktualną.

Odnośnik do tego porównania

Nowa wersja
Poprzednia wersja
formularz [2022/05/01 17:56] – utworzono - edycja zewnętrzna 127.0.0.1formularz [2024/09/15 16:22] (aktualna) – edycja zewnętrzna 127.0.0.1
Linia 27: Linia 27:
  
 </code> </code>
 +===== Zabezpieczenie przed podwójnym wysłaniem formularza JS =====
 +<code>
 +// nie wolno nadawać przyciskowi 'id'=>'submit'
  
 +<?php $form = ActiveForm::begin(['id' => 'form-create']); ?>
 +...
 +<div class="form-group  float-right">
 +    <span id="spin1" class="btn btn-outline-secondary"><i class="fas fa-spinner fa-spin"></i></span>
 +    <?= Html::submitButton('Zapisuję się', ['class' => 'btn btn-success','id'=>'sub' ]) ?>
 +</div>
 +
 +<?php ActiveForm::end(); ?>
 +
 +...
 +
 +<?php
 +$this->registerJs('
 +form = $("#form-create");
 +$("#spin1").hide();
 +$("#sub").on("click", function () {
 +    $(this).hide();
 +    $("#spin1").show();
 +});
 +$(form).on("afterValidate", function (event, messages, errorAttributes) {
 +    if (errorAttributes.length > 0) {
 +        $("#spin1").hide();
 +        $("#sub").show();
 +    }
 +}); 
 +');
 +</code>
  
 ===== Zabezpieczenie przed podwójnym wysłaniem formularza ===== ===== Zabezpieczenie przed podwójnym wysłaniem formularza =====
Linia 84: Linia 114:
         }         }
     });     });
 +});
 +</code>
 +
 +**Wersja AI  - lepsza, uwzględniająca ENTER w polu textarea**
 +<code>
 +$(window).keydown(function (event) {
 +    var activeElement = document.activeElement;
 +    if (activeElement.tagName.toLowerCase() === "textarea") {
 +        return true;
 +    } else {
 +        event.preventDefault();
 +        return false;
 +    }
 }); });
 </code> </code>
formularz.1651420582.txt.gz · ostatnio zmienione: 2024/09/15 16:22 (edycja zewnętrzna)