Включить автозаполнение браузера при отправке формы через ajax - PullRequest
0 голосов
/ 11 ноября 2019

После поисков в течение некоторого времени я не могу найти хороший ответ для своей проблемы.

У меня есть форма, которая отображается с использованием модальных окон (например, загрузочной коробки). Эта форма отправляется с использованием сообщения ajax, но браузер не может сохранить входные значения (автозаполнение), чтобы он мог отображать эти значения при повторном отображении этой формы.

function openModal(view) {
  var buttons = {};

  buttons.success = {
    label: "Salvar",
    className: "btn-primary",
    callback: function() {
      var $form = box.find("form");
      var valuesToSubmit = $form.serialize();
      $.ajax({
        type: "POST",
        url: $form.attr('action'),
        data: valuesToSubmit,
        dataType: "json"
      }).success(function(response) {
        box.modal('hide');
        if (successCallback) {
          successCallback();
        }
      }).error(function(response) {
        box.find(".modal-body").html(response.responseText);
        enableBasicControls(box);
        if (errorCallback) {
          errorCallback();
        }
      });

      return false;

    }
  };

  buttons.danger = {
    label: "Cancelar",
    className: "btn-danger"
  };

  box = bootbox.dialog({
    title: title,
    animate: false,
    message: view,
    onEscape: function() {},
    buttons: buttons,
    size: "large"
  });
}
<form asp-action="Create">
    <input asp-for="Id" type="hidden" />
    <input asp-for="ConsultaId" type="hidden" />

    <div class="row">
        <input data-focus="true" data-select="true" class="form-control" type="number" data-val="true" data-val-required="The QtdEmbalagens field is required." id="QtdEmbalagens" name="QtdEmbalagens" value="1">
        
    </div>
    <div class="row">
        <input rows="4" class="form-control" type="text" id="Observacao" name="Observacao" value="">
    </div>
</form>

1 Ответ

0 голосов
/ 11 ноября 2019

Я решаю эту проблему, отправляя на поддельную страницу, используя iframe:

<iframe name="myframe" id="frame1" src="Create" style="display: none;"></iframe>

<form asp-action="Create" target="myframe">
    <input asp-for="Id" type="hidden" />
....


function openModal(view) {
    var buttons = {};
    buttons.success = {
        label: "Salvar",
        className: "btn-primary",
        callback: function () {
            var $form = box.find("form");
            var  url = $form.attr('action');
            $form.attr('action', "about:blank");
            $form.submit();//======================== fake

            var valuesToSubmit = $form.serialize();
            $.ajax({
                type: "POST",
                url: url, //sumbits it to the given url of the form
                data: valuesToSubmit,
                dataType: "json"
            ...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...