如何使用不同的网址提交相同的表单?

时间:2015-09-30 06:35:49

标签: jquery python html ajax django

点击按钮表单将提交,成功数据包含next_url。我的目标是使用next_url提交相同的表单。这可能吗。?对不起,如果问题已经提出,请给我网址。

我的脚本代码:

$(document).ready(function(){
  $('form').submit(function(event){
    event.preventDefault();
    $.ajax({
      type: 'post',
      url: '/',
      async: false,
      data: $("#form_to_submit").serialize(),
      success: function(data){
        console.log(data);
        $('form').attr('action', data.next_url);
        $('form').unbind('submit').submit();
      }
    })
    return false;
  })
})

并在此处查看django视图。

def home(request):
    data_dict = {}
    if request.method == 'POST':
        form_data = request.POST['data']
        data_dict['form_data'] = form_data
        data_dict['next_url'] = reverse('frontend:first_term')
        return JsonResponse(data_dict)
    return render(request, 'index.html', {'data_list': data_list})


def first_term(request):
    data_dict = {}
    data_dict['next_url'] = reverse('frontend:second_term')
    return JsonResponse(data_dict)

更新1:

以上代码重定向到localhost.com/first_term{"next_url": "/second_term"}上下文。

但我希望first_term会发布该值并获得next_url in success方法[third_term]

1 个答案:

答案 0 :(得分:0)

你可以尝试这个:

$(document).ready(function() {
  $('form').submit(function(event) {
    event.preventDefault();
    $.ajax({
      type: 'post',
      url: '/',
      async: false,
      data: $("#form_to_submit").serialize(),
      dataType: 'json',
       cache: false
      success: function(data) {
        console.log(data);
        $('form').attr('action', data.next_url);
        $('form').unbind('submit').submit();
      }
    })

  })
})

See the Demo