Javascript 使用JQuery更改表单操作

Javascript 使用JQuery更改表单操作,javascript,jquery,html,Javascript,Jquery,Html,我需要每次点击按钮,表单动作会正确更改 但是,如果我单击其他按钮,它会累积表单动作,例如 <form action="http://localhost:8000/3/approved/4/approved" method="POST" id="form-request"> <button type="button" class="clr-empty" data-id="3">Prestar ambiente</button> <button ty

我需要每次点击按钮,表单动作会正确更改

但是,如果我单击其他按钮,它会累积表单动作,例如

 <form action="http://localhost:8000/3/approved/4/approved" method="POST" id="form-request">

 <button type="button" class="clr-empty" data-id="3">Prestar ambiente</button>
 <button type="button" class="clr-empty" data-id="4">Prestar ambiente</button>
 <button type="button" class="clr-empty" data-id="5">Prestar ambiente</button>

你要求累积,所以它会累积。如果您确定第一部分,可以如下硬编码:

$('.big-content').on('click', '.clr-empty', function (e) {
  e.preventDefault();
  $form = $('#form-request');
  $fid = $(this).attr('data-id');

  // This set form action
  $('#form-request').attr('action', "http://localhost:8000/" + $fid + '/approved');
  $('#confirm').modal({
    backdrop: 'static',
    keyboard: false
  })
  .on('click', '#asd', function() {
    $form.submit();
  });
});
如果希望URL是动态的,可以使用:

$('.big-content').on('click', '.clr-empty', function (e) {
  e.preventDefault();
  $form = $('#form-request');
  $fid = $(this).attr('data-id');

  // Construct the URL dynamically.
  var url = window.location.href.split("/");
  url = url[0] + "//" + url[2] + "/";

  // This set form action
  $('#form-request').attr('action', url + $fid + '/approved');
  $('#confirm').modal({
    backdrop: 'static',
    keyboard: false
  })
  .on('click', '#asd', function() {
    $form.submit();
  });
});
以上两种方法仅适用于URL与提供页面的域相同的情况。如果没有,您可以从表单的
操作
构造URL

$('.big-content').on('click', '.clr-empty', function (e) {
  e.preventDefault();
  $form = $('#form-request');
  $fid = $(this).attr('data-id');

  // Construct the URL dynamically.
  var url = $form.attr("action").split("/");
  url = url[0] + "//" + url[2] + "/";

  // This set form action
  $('#form-request').attr('action', url + $fid + '/approved');
  $('#confirm').modal({
    backdrop: 'static',
    keyboard: false
  })
  .on('click', '#asd', function() {
    $form.submit();
  });
});
另外,刚刚注意到您不需要再次选择表单。因此,您的最终代码将是:

$('.big-content').on('click', '.clr-empty', function (e) {
  e.preventDefault();
  $form = $('#form-request');
  $fid = $(this).attr('data-id');

  // Construct the URL dynamically.
  var url = $form.attr("action").split("/");
  url = url[0] + "//" + url[2] + "/";

  // This set form action
  $form.attr('action', url + $fid + '/approved');
  $('#confirm').modal({
    backdrop: 'static',
    keyboard: false
  })
  .on('click', '#asd', function() {
    $form.submit();
  });
});
$('.big-content').on('click', '.clr-empty', function (e) {
  e.preventDefault();
  $form = $('#form-request');
  $fid = $(this).attr('data-id');

  // Construct the URL dynamically.
  var url = $form.attr("action").split("/");
  url = url[0] + "//" + url[2] + "/";

  // This set form action
  $('#form-request').attr('action', url + $fid + '/approved');
  $('#confirm').modal({
    backdrop: 'static',
    keyboard: false
  })
  .on('click', '#asd', function() {
    $form.submit();
  });
});
$('.big-content').on('click', '.clr-empty', function (e) {
  e.preventDefault();
  $form = $('#form-request');
  $fid = $(this).attr('data-id');

  // Construct the URL dynamically.
  var url = $form.attr("action").split("/");
  url = url[0] + "//" + url[2] + "/";

  // This set form action
  $form.attr('action', url + $fid + '/approved');
  $('#confirm').modal({
    backdrop: 'static',
    keyboard: false
  })
  .on('click', '#asd', function() {
    $form.submit();
  });
});