Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/456.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/297.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript PHP:表单阻止多个选项卡。_Javascript_Php_Forms - Fatal编程技术网

Javascript PHP:表单阻止多个选项卡。

Javascript PHP:表单阻止多个选项卡。,javascript,php,forms,Javascript,Php,Forms,我目前正在使用javascript来防止每次用户单击多个浏览器选项卡时打开链接。假设我的链接目的地是谷歌,它将创建一个新的标签,如果不存在,但刷新,如果相同的目的地存在。到目前为止效果很好 这是代码 链接 JavaScript <script> document.getElementById("container").onclick = function(test){ if (test.target.tagName === "A")

我目前正在使用javascript来防止每次用户单击多个浏览器选项卡时打开链接。假设我的链接目的地是谷歌,它将创建一个新的标签,如果不存在,但刷新,如果相同的目的地存在。到目前为止效果很好

这是代码

链接


JavaScript

<script>
    document.getElementById("container").onclick = function(test){
        if (test.target.tagName === "A")
            window.open(test.target.href, test.target.href);

        return false;
    }
</script>

document.getElementById(“容器”).onclick=函数(测试){
如果(test.target.tagName==“A”)
window.open(test.target.href、test.target.href);
返回false;
}
我的问题是,如何在我的表单上使用相同的JavaScript,并获得类似的效果?我的意思是如果用户提交我的表格。如果不存在,则在提交时将创建一个新选项卡。但如果该选项卡存在,请在同一选项卡上重新提交。我试图更改JavaScript,但无法使其作为正常链接工作

这是我的表格

<form name='form1'  action='/newform.php' method='post' target='_blank'>
<input type='hidden' name='test' value=''>
<input type='image' src='../data/images/myimages.gif' width='100px' height='30px' alt=''>
</form>

使用会话变量怎么样?
对于javascript也使用ID

<?php 
  //Check if session has not been started.
  if (session_status() == PHP_SESSION_NONE)
  {
    session_start();
  }


//If it has not been set, set no default.
if (!ISSET($_SESSION['hasSubmit'])
{
    $_SESSION['hasSubmit'] = "no";
}

if ($_SESSION['hasSubmit'] == "no")
{
   //Execute code for no
  echo "
  <form name='form1'  id='firstSubmit' action='/newform.php' method='post' target='_blank'>
  <input type='hidden' name='test' value=''>
  <input type='image' src='../data/images/myimages.gif' width='100px' height='30px' alt=''>
  </form>";
}
else if($_SESSION['hasSubmit'] == "yes")
{
   //Execute code for yes
   //Edit your form properties here to your likes.
  echo "
  <form name='form1'  action='#' method='post' target='_newblank'>
  <input type='hidden' name='test' value=''>
  <input type='image' src='../data/images/myimages.gif' width='100px' height='30px' alt=''>
  </form>";
}
?>
现在,javascript:

$('firstSubmit').click(function(){
location.reload;
});

这应该可以做到

您可以尝试以下方法:

<script type='text/javascript'>
    function formSubmit() {
        window.open("about:blank","newWindow");
    }
</script>
<form name='form1'  action='/newform.php' method='post' onSubmit='formSubmit()' target='newWindow'>
  <input type='hidden' name='test' value=''>
  <input type='image' src='../data/images/myimages.gif' width='100px' height='30px' alt=''>
</form>

函数formSubmit(){
打开(“关于:空白”、“新窗口”);
}
基本上,这将在表单第一次提交时打开新窗口,每隔一段时间表单将提交到已经打开的窗口


请记住,
window.open
可以被弹出窗口拦截器阻止,而且通常是这样。

你不能,不是那样的。不同之处在于,首先使用的是
窗口。打开
,而在另一个窗口中使用的是
target=\u blank
。在第二分钟,你不能控制账单,我不明白,先生。因为我在我的链接上也使用target=\u blank。无法理解为什么我的表单在提交时不断创建具有相同url的新选项卡,而不是1。与我的链接不同,我的链接只创建一个选项卡。你的target=\u blank在你的链接上没有效果,因为你在javascript中使用window.open并像那样打开窗口。如果从链接中删除target=_blank,它也会起作用,因为打开选项卡的不是链接,而是脚本。哦,我现在明白了。但有没有办法让我的表单和link一样工作?我认为Javascript需要调整,以便我的表单能够以同样的方式工作。我试图修改javascript,但仍然无法使其工作。我的表单在提交时保持创建新选项卡,而不是在同一选项卡上重新发布:(看一看我刚刚写的例子。它会用它创建更多的选项卡吗?假设我用form.php创建了选项卡1,然后提交它,它会用newform.php创建选项卡2。如果我返回到选项卡1并重新提交,它会用newform.php创建选项卡3吗?要解决这个问题,用javascript创建一个onclick处理程序,执行location.reload();我将编辑我对您问题的回答。对不起,先生,迟了答复。我只是测试一下。您的代码完全符合我的要求。方法与我的链接相同。我有两个新手问题。1)可以在[window.open]处“newWindow”(关于:空白”,“newWindow”]重命名为其他吗?2)正如您前面提到的,window.open可以被弹出窗口拦截器阻止,它仍然和target=\u blank一样工作还是不同的方法?
$('firstSubmit').click(function(){
location.reload;
});
<script type='text/javascript'>
    function formSubmit() {
        window.open("about:blank","newWindow");
    }
</script>
<form name='form1'  action='/newform.php' method='post' onSubmit='formSubmit()' target='newWindow'>
  <input type='hidden' name='test' value=''>
  <input type='image' src='../data/images/myimages.gif' width='100px' height='30px' alt=''>
</form>