Как скрыть блок div после выполнения формы?

218
08 февраля 2018, 15:40

Есть код формы

<div id="form"> 
  <form id="paypal" name="paypal" action="https://www.paypal.com/cgi-bin/webscr" method="post" target="iframe name"> 
    <input type="hidden" name="charset" value="utf-8"> 
    <input type="hidden" name="cmd" value="_xclick"> 
    <input type="hidden" name="item_number" value="funds01"> 
    <input type="hidden" name="item_name" value="Deposit"> 
    <input type="hidden" name="quantity" value="1"> 
    <input type="hidden" name="custom" value="admin"> 
    <input type="hidden" name="receiver_email" value="example@yandex.ru"> 
    <input type="hidden" name="business" value="example@yandex.ru"> 
    <input type="hidden" name="no_shipping" value="1"> 
    <input type="hidden" name="currency_code" value="USD"> 
    <input type="hidden" name="no_note" value="1"> 
    <input type="text" class="form-control" name="amount"> 
    <button type="submit">Go to payment</button> 
  </form> 
</div> 
 
<div id="result"> 
  <iframe name="iframe name"></iframe> 
</div>

Как сделать так, чтобы после нажатия кнопки отправки формы, блок id form скрылся, а блок id result появился?

Answer 1

Примерно вот так.

var form = document.getElementById("form"); 
var result = document.getElementById("result"); 
function getResult() { 
  form.classList.add("hidden"); 
  result.classList.remove("hidden"); 
}
.hidden { 
  display: none; 
}
<div id="form"> 
  <form id="paypal" name="paypal" action="https://www.paypal.com/cgi-bin/webscr" method="post" target="iframe name"> 
    <input type="hidden" name="charset" value="utf-8"> 
    <input type="hidden" name="cmd" value="_xclick"> 
    <input type="hidden" name="item_number" value="funds01"> 
    <input type="hidden" name="item_name" value="Deposit"> 
    <input type="hidden" name="quantity" value="1"> 
    <input type="hidden" name="custom" value="admin"> 
    <input type="hidden" name="receiver_email" value="example@yandex.ru"> 
    <input type="hidden" name="business" value="example@yandex.ru"> 
    <input type="hidden" name="no_shipping" value="1"> 
    <input type="hidden" name="currency_code" value="USD"> 
    <input type="hidden" name="no_note" value="1"> 
    <input type="text" class="form-control" name="amount"> 
    <button type="submit" onclick="getResult()">Go to payment</button> 
  </form> 
</div> 
 
<div id="result" class="hidden"> 
  <iframe name="iframe name"></iframe> 
</div>

С помощью AJAX:

var form = document.getElementById("form"); 
var result = document.getElementById("result"); 
 
function getResult() { 
  var xhr = new XMLHttpRequest(); 
 
  xhr.open("POST", 'https://www.paypal.com/cgi-bin/webscr', true); 
 
  xhr.onreadystatechange = function() { 
    if (xhr.readyState === XMLHttpRequest.DONE && xhr.status === 200 || 302) { 
      form.classList.add("hidden"); 
      result.classList.remove("hidden"); 
    }; 
  }; 
 
  xhr.send(); 
}
.hidden { 
  display: none; 
}
<div id="form"> 
  <form id="paypal" name="paypal" action="https://www.paypal.com/cgi-bin/webscr" method="post" target="iframe name"> 
    <input type="hidden" name="charset" value="utf-8"> 
    <input type="hidden" name="cmd" value="_xclick"> 
    <input type="hidden" name="item_number" value="funds01"> 
    <input type="hidden" name="item_name" value="Deposit"> 
    <input type="hidden" name="quantity" value="1"> 
    <input type="hidden" name="custom" value="admin"> 
    <input type="hidden" name="receiver_email" value="example@yandex.ru"> 
    <input type="hidden" name="business" value="example@yandex.ru"> 
    <input type="hidden" name="no_shipping" value="1"> 
    <input type="hidden" name="currency_code" value="USD"> 
    <input type="hidden" name="no_note" value="1"> 
    <input type="text" class="form-control" name="amount"> 
    <button type="submit" onclick="getResult()">Go to payment</button> 
  </form> 
</div> 
 
<div id="result" class="hidden"> 
  <iframe name="iframe name"></iframe> 
</div>

Answer 2

document.querySelector('button').addEventListener('click', function() { 
  document.querySelector('#result').style.display = 'block'; 
  document.querySelector('#form').style.display = 'none'; 
})
#result { 
  display: none; 
}
<div id="form"> 
  <form id="paypal" name="paypal" action="https://www.paypal.com/cgi-bin/webscr" method="post" target="iframe name"> 
 
    <input type="text" class="form-control" name="amount"> 
    <button type="submit">Go to payment</button> 
  </form> 
</div> 
 
<div id="result"> 
  <iframe name="iframe name"></iframe> 
</div>

Answer 3

так как там айфрей,то sucess работать не будет, прийдётся проверку по другому делать,в данном случае проверка происходит в случае любого завершения запроса. Расчёт на то,что валидация стоит на форме всётаки.

$('#paypal').submit(function(){  
 $.ajax({ 
  type: 'POST', 
  url: 'https://www.paypal.com/cgi-bin/webscr', 
  data: 'параметры', 
  complete: function(){ 
    $('#paypal').hide() 
    $('#result').hide() 
  } 
}); 
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
<div id="form"> 
  <form id="paypal" name="paypal" action="https://www.paypal.com/cgi-bin/webscr" method="post" target="iframe name"> 
    <input type="hidden" name="charset" value="utf-8"> 
    <input type="hidden" name="cmd" value="_xclick"> 
    <input type="hidden" name="item_number" value="funds01"> 
    <input type="hidden" name="item_name" value="Deposit"> 
    <input type="hidden" name="quantity" value="1"> 
    <input type="hidden" name="custom" value="admin"> 
    <input type="hidden" name="receiver_email" value="example@yandex.ru"> 
    <input type="hidden" name="business" value="example@yandex.ru"> 
    <input type="hidden" name="no_shipping" value="1"> 
    <input type="hidden" name="currency_code" value="USD"> 
    <input type="hidden" name="no_note" value="1"> 
    <input type="text" class="form-control" name="amount"> 
    <button type="submit">Go to payment</button> 
  </form> 
</div> 
 
<div id="result"> 
  <iframe name="iframe name"></iframe> 
</div>

READ ALSO
Изменение strokeDashoffset строки SVG в цикле for

Изменение strokeDashoffset строки SVG в цикле for

Я пытаюсь анимировать расширение линии

221
Не експортируется CarouselCaption с reactstrap

Не експортируется CarouselCaption с reactstrap

Привет!Я решил установить reactstrap(Bootstrap для react)чтобы использовать систему сеток и устоновить слайдер на сайт но при установке слайдера я получаю...

288
Позиционирование H1 в слайдере

Позиционирование H1 в слайдере

Есть сайт https://studentprogramsru/ на главной есть слайдер с текстом Детские каникулы 2018

260
Выделение ссылки на якорь и сохранение ее стиля только средствами html css

Выделение ссылки на якорь и сохранение ее стиля только средствами html css

При нажатии на ссылку сделать, например, ее бг красным, но после нажатия на другую ссылку, применить такой стиль на нее, а у прошлой убратьВозможно...

213