У меня возникла проблема с попыткой получить подтверждение в динамически созданной форме. Форма генерируется с информацией, возвращенной из вызова ajax. Эта HTML-страница отправляет форму в php-скрипт через ajax, и страница возвращает номер транзакции.
После ответа код ниже создает новую кнопку «Void Transaction» и форму, которая аннулирует предыдущую транзакцию.Подтверждение отправки формы в форме, созданной с помощью javascript
Все работает отлично, но я не могу найти способ сделать подтверждение (например, «Вы действительно хотите аннулировать последнюю транзакцию?») Перед нажатием новой кнопки.
<script>
$(document).ready(function() {
$('#looptransact').ajaxForm(function(response) {
document.getElementById("looptransact").reset();
document.getElementById("areaCode").focus();
jsonResponse = JSON.parse(response);
var voidForm = document.createElement("form");
voidForm.method = "POST";
voidForm.action = "VoidTransaction.php";
var voidFormData = document.createElement("input");
voidFormData.type = "hidden";
voidFormData.name = "TransactionNumber";
voidFormData.value = jsonResponse.TransactionNumber;
var voidFormButton = document.createElement("input");
voidFormButton.type = "submit";
voidFormButton.value = "Void Transaction";
voidForm.appendChild(voidFormButton);
voidForm.appendChild(voidFormData);
placeholder = document.getElementById("VoidButton");
placeholder.appendChild(voidForm);
document.getElementById("statusbox").innerHTML=jsonResponse.Response;
document.getElementById("TransactionNumber").innerHTML="Transaction Number: " +jsonResponse.TransactionNumber;
});
});
Я предположил, что я мог бы добавить это к document.createElement("form")
вызова:
voidForm.onsubmit = "return confirm('Are you sure you want to void this transaction?')"
Но это не работает.
Вот эти HTML элементы, что населяет:
<div id="statusbox"></div>
<div id="TransactionNumber"></div>
<div id="VoidButton"></div>
Я ненавижу признать, что я был на этом в течение 2 часов в настоящее время.
Спасибо Дэвиду, что делает полный смысл и прекрасно работает. – Joe
Обратите внимание, что иногда пользователь отправляет форму, нажимая enter из текстового поля, поэтому этот метод не работает. – xManh
вместо voidForm.onsubmit = function() {/ ** /} ' – metadings