Очистка входных данных при отправке после открытия их на новой вкладке

#javascript #php #html #forms

#javascript #php #HTML #формы

Вопрос:

В любом случае, сразу к делу. Мне нужна помощь в получении кнопки отправки формы, чтобы очистить поле ввода, а также отправить введенную информацию. Не очень подробно, верно?

Вот пример. Пользователь вводит данные в поле. Пользователь нажимает отправить. Затем отправленная информация открывается на новой вкладке. Затем оригинальная вкладка с полем ввода обновляется, чтобы удалить текст в поле ввода.

Это моя текущая форма. Я попробовал реализовать javascript. Он работал для удаления информации при нажатии, но не отправлял информацию обработчику. Можете ли вы сказать мне, как это исправить?

 <form class="form-inline" role="form" method="post" target="_blank" action="derp.php">

  <input id="banfix" type="text" name="player" class="form-control" placeholder="Player Username">
  <button type="submit" class="btn btn-default" onclick="document.getElementById('banfix').value='';return false;">Search</button>

</form>
  

Я не против, чтобы это было на php или javascript. Мне просто нужно знать, как решить мою проблему.

Комментарии:

1. сколько полей у вас в форме, только одно или несколько..

2. В моем коде у меня есть только один.

Ответ №1:

Использование jquery:

 <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script type="text/javascript">
  $(function(){
        //clear data  
        $('.form-inline').on('submit','.form-inline',function(){   
            var value = $("#banfix").val();//now you have the value
            $("input[type=text], textarea").val("");          
            });  
    });         
</script>
  

Комментарии:

1. Это не сработало. Он открывает новую вкладку и отправляет информацию, но не очищает область ввода.

Ответ №2:

может сбросить вашу форму после отправки

 $(".myform")[0].reset();
  

Ответ №3:

Используйте onsubmit() , это сработает, когда пользователь нажмет кнопку или просто нажмет enter

 <form class="form-inline" role="form" method="post" target="_blank" action="derp.php" onsubmit="document.getElementById('banfix').value='';">
    <input id="banfix" type="text" name="player" class="form-control" placeholder="Player Username">
    <button type="submit" class="btn btn-default">Search</button>
</form>
  

Комментарии:

1. Это открывает новую вкладку, но очищает отправленную информацию.

Ответ №4:

Вы можете открыть новое окно в derp.php файл после отправки формы.

 <?php
        $banfix = $_POST['banfix'];
        $new_url = "YOUR_URL_HERE?fix=".$banfix;
        echo "<script type='text/javascript'>window.open('".$new_url."','_blank');</script>";
        http_redirect('YOUR_FORM_URL_HERE');
        die();
?>
  

Ответ №5:

 <form class="form-inline" role="form" method="post" target="_blank" action="derp.php">
<input id="banfix" type="text" name="player" class="form-control" placeholder="Player Username">
<button type="submit" class="btn btn-default" onclick="setTimeout(function() {
document.getElementById('banfix').value='';return false;
}, 100);">Search</button>
</form>
  

Я добавил функцию тайм-аута в свой onclick. Моя проблема заключалась в том, что отправляемая информация очищалась до ее отправки. Поэтому я установил тайм-аут в 100 тактов, чтобы информация могла быть отправлена первой. :3