【发布时间】:2015-05-17 07:17:55
【问题描述】:
我有一个在用户选择一系列选项后动态加载的表单。
显示表单后,用户必须单击表单中的按钮以确认选择并重定向到第三方站点。 在用户被重定向之前,我需要通知我们的系统用户已确认选项并生成一个 ID 以传递第三方站点,以便它可以识别交易。
jQuery函数如下。
$.ajax({
type: "GET",
url: 'functions.php?funcion=transaccion&order=' + pedido ,
dataType: "xml",
success: function(xml){
$("#param").val($(xml).find('trxid').text());
$('#form_pago').submit();
},
error: function() {
alert("Error en transaccion.");
}
});
ID被带回,但表单没有提交。
我的猜测是问题是表单正在动态加载,因此在解析 DOM 时它不存在,但我找不到如何在任何地方提交它。
编辑:
似乎我的问题不够具体,或者我没有理解答案,因为它们没有解决我的问题..
这里是完整版的代码:
这是加载表单的函数。
function mostrarFormulario(pedido){
$.ajax({
type: "GET",
url: 'functions.php?funcion=getFormularioPago&pedido=' + pedido,
dataType: "xml",
success: function(xml){
$("#fin_pedido").html($(xml).find('formulario').text());
},
error: function() {
alert("Se ha producido un error al generar el boton para realizar el pago.");
}
});
}
这是正在加载的表单
<form method="post" action="https://sps433.decidir.net/sps-ar/Validar" target="_top" id="pago_decidir">
<input name="NROCOMERCIO" value="xxxxxxx" type="hidden">
<input name="NROOPERACION" value="NROOP" type="hidden">
<input name="MONTO" value="nnnnnnnn" type="hidden">
<input name="CUOTAS" value="" type="hidden">
<input name="URLDINAMICA" value="http://URL-RETORNO" type="hidden">
<input name="EMAILCLIENTE" value="xxxxxx@xxxxxx" type="hidden">
<input name="MEDIODEPAGO" value="xxxxx" type="hidden">
<input name="PARAMSITIO" value="" id="paramsitio" type="hidden">
<input value="Pagar con Decidir" name="submit" alt="Pagar con Decidir" onclick="generarTransaccion('nnn')" border="0" type="button">
</form>
这是 onClick 中调用的函数,它应该在检索到需要发送的 ID 后提交表单。
function generarTransaccion(pedido) {
$.ajax({
type: "GET",
url: 'functions.php?funcion=transaccion&pedido=' + pedido ,
dataType: "xml",
success: function(xml){
$("#paramsitio").val($(xml).find('trxid').text());
$('#pago_decidir').submit();
},
error: function() {
alert("Se ha producido un error al generar el boton para realizar el pago.");
}
});
}
此函数正确检索并替换ID,但不提交表单。
【问题讨论】:
-
如果你把
console.log($('#form_pago'))放在success方法的前面会报告什么? -
您可以在成功回调中设置调试器语句,并检查是否在该上下文中找到了 from_pago,同时检查下一个 url 是否设置正确?
-
也许显示表单是如何附加的?至少在第一次提交时首先将数据发送到您的 ajax 的 onsubmit,以及之后如何更改第三方重定向 :)
-
我将问题编辑得更具体。 URL 是正确的,因为如果我更改提交按钮,它会正确到达目的地,但没有所需的 ID。
标签: javascript php jquery ajax forms