Установить действие формы с помощью jquery - PullRequest
0 голосов
/ 03 мая 2019

Есть ли способ установить действие формы для вызова URL с параметром первичного ключа.У меня есть следующий jquery:

$('#chatbox').on('show.bs.modal', function(event) {
  var button = $(event.relatedTarget) // Button that triggered the modal
  var recipient = button.data('whatever') // Extract info from data-* attributes
  $.ajax({
    url: "{% url 'fetcher' %}",
    data: {
      'search': recipient
    },
    dataType: 'json',
    success: function(data) {
      list = data.list;
      id = data.id;
      $('#chatbox').find('.modal-body').text(id)
      $('#formid').get(0).setAttribute('action', "{% url 'usercreation:addmessage'  %}");

    }
  });
  var modal = $(this)
  modal.find('.modal-title').text('Chat with ' + recipient)
})

Мне нужно включить «id» из успешного ответа ajax в качестве первичного ключа, переданного в форму действия.Что-то вроде {% url 'usercreation: addmessage' id%} Есть ли способ?

РЕДАКТИРОВАТЬ:

AJAX соответственно:

   {'list': 'go358938: hi\r\ngo358938: heyyy\r\nraman: whatuppp\ngo358938: nm, you tell ?\ngo358938: im good \ngo358938: yoo\ngo358938: hello\ngo358938: hello\ngo358938: hi\ngo358938: a', 'id': 35}

1 Ответ

0 голосов
/ 03 мая 2019

Похоже, что ваш JSON был искажен, нужно использовать " двойные кавычки вместо ' одинарных кавычек.Вы также пропускаете запрос type из Ajax, который вы делаете, например (POST, GET).Я собрал ложный пример получения ответа JSON и установки form action с возвращенным data.id.Это то, что вы ищете?

$.ajax({
  url: "https://api.myjson.com/bins/xp74s", // sample test to get JSON response
  type: "GET",
  data: {
    "search": ""
  },
  dataType: "json",
  success: function(data) {
    console.log(data);
    var list = data.list;
    var id = data.id;
    //$('#chatbox').find('.modal-body').text(id);
    //$('#formid').get(0).setAttribute('action', "{% url 'usercreation:addmessage'  %}");
    $('#formid').attr("action", "{% url 'usercreation:addmessage' " + id + " %}"); // sets the value of the action, need to add your django code back here, etc.
    console.log($('#formid').attr('action')); // shows what the value is after being set
  }
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<form id="formid">
</form>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...