我遇到了一个奇怪的问题,我在表单提交后更改了表单URL。我已经更改了表单字段并且它们正在完美地更改但是操作URL没有更改...这是HTML代码..
<form action="" method="post" id="payment-form">
<input type="hidden" id="email" name="email" value="">
....
</form>
$.ajax({
url: form_url,
type: 'post',
context:this,
data: $("#payment-form").serialize(),
dataType: 'json',
success: function(data) {
if(data.success) {
$('#payment_form').attr("action", data.url);
$('#email').val(data.email);
alert($("#payment-form").attr('action'));
//$("#payment-form").submit();
}
else {
$('#error').html(data.errors).addClass('error').fadeIn("slow").fadeOut(9000);
}
}
});
警报显示我没有网址,为什么会这样?
我已设置$('#payment_form').attr("action", data.url);
它显示我没有网址,但alert(data.url)
显示我的网址。
答案 0 :(得分:1)
更改
$(this).attr("action", data.url);
到
$('#payment-form').attr("action", data.url);
答案 1 :(得分:1)
更新:原因是标记中的空操作参数。如果你把它完全从标记中删除,那么当你从ajax调用中获得data.url
时,可以通过jQuery设置该属性。
答案 2 :(得分:0)
this
不是表格
答案 3 :(得分:0)
我没有看到ID为payment_form
的元素:
$('#payment_form').attr("action", data.url);
请改为尝试:
$('#payment-form').attr("action", data.url); // <--- notice the 'dash' instead of the underscore