Это форма оплаты, которая будет отправлена на платежный шлюз Worldpay. Он имеет все параметры в соответствии с документацией WorldPay, и он отлично работает, если он отправлен непосредственно.JQuery - Невозможно динамически изменять действие формы и отправлять ее в событие успеха ajaxForm()
Но теперь я пытаюсь
- AJAX опубликовать форму первого моего сайта (с использованием jquery.form, и эта часть работает отлично), а затем сделать некоторые операции
- базы данных, а затем изменить атрибут action с помощью javascript и отправить его в Worldpay. Но пост worldpay не работает и ничего предупрежденного после того, как строка
$("form#wpftuf").submit();
в следующем коде также не предупреждает.
Платежная форма
<form name="wpftuf" id="wpftuf" method="post" action="http://url/of/ajax/file/add_credit">
<input type="hidden" name="operation" value="add_credit" id="operation" /> <?php // for ajax validation ?>
<input type="hidden" name="worldpayUrl" value="<?php echo WPurl?>" id="worldpayUrl" />
...
..
...other necessary fields
</form>
Здесь я пропусканием Worldpay URL в качестве параметра
Аякса связывания
$(document).ready(function()
{
var options = {
dataType: 'json',
beforeSubmit: function()
{
//alert("submitting");
},
success: function(data)
{
if(data)
{
if(data.success)
{
var worldpayUrl = $("input[id=worldpayUrl]").val();
$("form#wpftuf").attr("action",worldpayUrl);
alert("this works");
$("form#wpftuf").submit();
//This alert does not work
alert("this alert does not work "+$("form#wpftuf").attr("action"));
}
}
}
,
error:function()
{
alert("validation failed");
}
};
$("form#wpftuf").ajaxForm(options);
});
Я предполагаю, что ошибка происходит потому что я пытаюсь изменить a и представление в событии успеха формы ajax, а форма - binded
. Таким образом, я пытался слепо положить $("form#wpftuf").unbind(options);
, $("form#wpftuf").unbind();
$("form#wpftuf").unbind(ajaxForm);
после $("form#wpftuf").attr("action",worldpayUrl);
линии (по одному), но во всех случаях я получаю эту ошибку uncaught exception: Permission denied to call method XMLHttpRequest.open
Как я отправить форму динамически Worldpay после успеха Аякса обработки формы. Должна ли форма быть unbinded
? Пожалуйста помоги. У этого может быть простое решение, но я не могу его получить. Я много искал.
Обратите внимание
WorldPay платежный шлюз необходимо пользователю заполнить некоторые формы там после размещения, так что представление AJAX снова используя ajaxSubmit()
не будет работать. Мне нужна нормальная форма.
Спасибо,
Sandeepan
Thats it! У меня есть все параметры post во время моего первого вызова AJAX, используя 'var posts = $ (this) .serialize();' и я могу развязать форму и отправить ее на worldpay тоже. Он отлично работает! Испытали ваше решение и наградили наградой. Не знал о 'e.preventDefault();', чтобы предотвратить обычную отправку формы. большое спасибо –