2016-05-25 4 views
-1

Я сделаю это как можно яснее.Trigger form submit via jQuery подтверждение оповещения

В принципе, моя форма позволяет удалять игроков из окна выбора.

Когда пользователь нажимает «Удалить», появляется окно с подтверждением того, что если они продолжат, они не смогут вернуть эти данные. Предполагаемое поведение заключается в том, что, когда пользователь нажимает «ОК», скрипт удаления запускается и удаляет игрока. Если вы удалите окно подтверждения и разрешите поведение кнопки отправки по умолчанию, оно работает так, как я хочу. Я бы просто стал более профессиональным, если бы мог добавить этот промежуточный шаг.

Вот мое отношение HTML код:

<form id="player-list" action="edit-player.php?playerid=22" method="post"> 

       <div id="player-box" class="row"> 
        <div class="small-12 medium-offset-4 medium-4 columns"> 
         <label>Team 
          <select id="all-players" name="team-division"> 
          <?php 
           $SQL = "SELECT 
              ID, 
              firstName, 
              lastName 
             FROM 
              players"; 
           $playerResult = mysqli_query($link, $SQL); 
           $counter = 1; 

           while($row = mysqli_fetch_array($playerResult)) { 
            echo '<option value="player-' . $row['ID'] . '">' . substr($row['firstName'], 0, 1) . " " . $row['lastName'] . '</option>'; 
           } 

          ?> 



          </select> 
          <br /> 
         </label> 
        </div> 
       </div> 

       <div class="row"> 
        <div class="small-12 medium-2 medium-offset-4 columns "> 
         <a id="player-selection" class="button expanded radius success">Submit</a> 
        </div> 
        <div class="small-12 medium-2 columns end"> 
         <input type="submit" id="player-deletion" class="button expanded radius alert" name="delete-player" value="Delete" /> 
        </div> 
       </div> 
      </form> 

входа # играющего удаление тег что важно здесь.

Соответствующий JQuery код:

$("#player-deletion").on('click', function(e) { 
     e.preventDefault(); 

     var x; 
     if (confirm("This record will be permanentely deleted. Is that OK?") == true) { 
      $(e).trigger('submit'); 
     } 
    }); 

Этот код не работает. Я знаю, что мне нужно предотвратить действие по умолчанию, но после того, как пользователь нажал «ОК», я хотел бы отказаться от функции отправки с помощью кнопки подтверждения.

Возможно ли это?

Любая помощь будет оценена по достоинству.

Спасибо.

+0

* "Я хотел бы refire отправки функции с помощью кнопки подтверждения." * Почему? он был бы уволен, если бы вы не предотвратили действие по умолчанию в любом случае. –

ответ

0

Вы можете просто вернуть то, что возвращает confirm. return false будет таким же, как называть e.preventDefault() и e.stopPropagation(). Прекращение распространения события - это то, что отменит отправку.

$("#player-deletion").click(function(e) { 
    return confirm("This record will be permanentely deleted. Is that OK?"); 
}); 

JSFiddle Example

+0

Прошу прощения, потребовалось время, чтобы вернуться к вам. Был занят работой и прочими вещами. Ваше решение отлично работает. Благодарю. – Chosen1

0

Вам просто нужно вернуть значение false, если пользователь нажал кнопку отмены в диалоговом окне подтверждения. В противном случае он будет проходить через поток по умолчанию.

$("#player-deletion").on('click', function(e) { 
    if (!confirm("This record will be permanentely deleted. Is that OK?")) { 
     return false; 
    } 
}); 
0

Изменение если заявление

if (confirm("This record will be permanentely deleted. Is that OK?") == true) { 
    //submit regardless 
} else { 
    e.preventDefault();//do something other here 
} 

 Смежные вопросы

  • Нет связанных вопросов^_^