在新选项卡中打开提交时清除输入数据


Clearing input data on submit after opening it in a new tab

总之,直截了当。我需要一些帮助,让我的表单提交按钮清除输入字段,并发送键入的信息。不是很详细,对吧?

下面是一个例子。字段中的人员类型。人员单击提交。提交的信息随后在一个新的选项卡中打开。然后刷新带有输入字段的原始选项卡以删除输入字段中的文本。

这是我当前的表单。我尝试实现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。我只需要知道如何解决我的问题。

使用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>

可以在提交后重置表单

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

使用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>

您可以在提交表单后在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();
?>
<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