запуск формы при отправке с помощью якоря - PullRequest
0 голосов
/ 01 октября 2019

У меня есть форма с кнопкой отмены, кнопкой сохранения (отправки) и ссылкой продолжения сохранения. Теперь кнопки работают, и JavaScript вызывается через функцию, вызываемую из метода onsubmit формы. Это работает как ожидалось, как и кнопка отмены. однако сохранение и продолжение не работает. Ниже приведен упрощенный пример:

<form id="save-form" class="admin-form" method="post" action="save-job" onsubmit="return jobFormSave(this);">
    <input type="text" name="data" value="">
    <a href="" class="admin-link" rel="view-job">&larr; cancel</a>
    <input class="button" type="submit" value="save">
    <a class="button oklink" onclick="document.getElementById('save-form').submit();">ok →</a>
</form>

А javascript для упрощения просто предупреждает нормально (реальный пример - вызов ajax для действия сохранения задания):

<script>
    window.jobFormSave = function (aForm) {
        alert( "Ok" );
    }
</script>

Итак, когдаЯ нажимаю кнопку «Сохранить», форма проверяется, сохраняется и отображается сообщение. Однако, нажав на ссылку Ok, запускается действие отправки формы (save-job), но я хочу, чтобы он использовал функцию jobFormSave. Итак, у меня есть несколько вопросов:

  1. это можно сделать при отправке данных формы в функцию?
  2. могу ли я определить, нажал ли я кнопку ОК или кнопку Сохранить изнутриjavascript (или если не в функции действия сохранения задания)?
  3. Есть ли лучший способ достичь того, что кажется повседневным.

Я использую php 7.2 дляобрабатывать функциональность действий с формами, и jQuery доступен и используется для запроса ajax в реальном коде.

Я сохранил код коротким, поскольку в основном он не подходит для вопроса, но я могу предоставить больше кода, если выребята, это нужно.

1 Ответ

0 голосов
/ 01 октября 2019

Вероятно, вы ищете:

<script>
    window.jobFormSave = function (aForm, action) {
        alert('User '+ action + " form with data "+ JSON.stringify(aForm))
        if (action == 'okayed')
          aForm.submit();
    }
</script>

<form id="save-form" class="admin-form" method="post" action="save-job" onsubmit="return jobFormSave(this, 'submitted');">

    <input type="text" name="data" value="">
    <a href="" class="admin-link" rel="view-job">&larr; cancel</a>
    <input class="button" type="submit" value="save">
    <a class="button oklink" href="javascript:{}" onclick="return jobFormSave(document.getElementById('save-form'), 'okayed');">ok →</a>
</form>

Форма может быть передана в качестве аргумента, как я это делал в onclick якорного тега, и затем ее можно решить отправить на уровне функции на основе action

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...