Php 如何使用javascript重定向提交时的当前选项卡?

Php 如何使用javascript重定向提交时的当前选项卡?,php,javascript,Php,Javascript,我做了一个小例子来学习javascript和php。 我尝试了window.open()和window.location(),但它打开了一个新选项卡,当前选项卡仍然重定向到“login.php” 功能检查提交(表格){ if(form.id.value==“”| | form.password.value==“”){ $check=确认(“不要将id或密码留空!\n按“确定”继续…”); 如果($支票) 窗口打开(“http://www.google.com/"); 其他的 窗口位置(“htt

我做了一个小例子来学习javascript和php。 我尝试了window.open()和window.location(),但它打开了一个新选项卡,当前选项卡仍然重定向到“login.php”


功能检查提交(表格){
if(form.id.value==“”| | form.password.value==“”){
$check=确认(“不要将id或密码留空!\n按“确定”继续…”);
如果($支票)
窗口打开(“http://www.google.com/");
其他的
窗口位置(“http://www.yahoo.com");    
}
}
身份证:
密码:

我希望我的页面在按ok或cancel时不要重定向到“login.php”。

为什么支票变量上有$?你不能按下面的方式申报吗。另外,您是否可以将其发送到警报框,以查看其值是多少

<script type = "text/javascript">
    function checksubmit(form) {
        if ( form.id.value == ""  || form.password.value == "" ) {
            var check = confirm("Don't leave id or password blank !\nPress OK to continue ... ");
            alert(check);                     
            if (check)
                window.open("http://www.google.com/");
            else
                window.location("http://www.yahoo.com");
        }             
    }         
</script>

功能检查提交(表格){
if(form.id.value==“”| | form.password.value==“”){
var check=确认(“不要将id或密码留空!\n按“确定”继续…”);
警惕(检查);
如果(检查)
窗口打开(“http://www.google.com/");
其他的
窗口位置(“http://www.yahoo.com");
}             
}         

您已将其设置为
window.location
,因此它将始终重定向,因为这是您要它执行的操作

window.open
类似于
window.location
,但会打开一个新的选项卡/窗口。同样,它将重定向

你需要移除这些

如果您不希望表单为空,则需要在表单上的
onsubmit
事件中添加一个
return false
,就像我在这里看到的那样:

或者,下面是该示例中的代码:

myform = document.getElementById('myform');

myform.onsubmit = function(){
  if(document.getElementById('myinput').value == ''){
    return false;
  }
  else{
    //The form will go through...
  }
};

<form id="myform" action="http://google.com">
    <input id="myinput" type="text" value="">
    <input type="submit" value="Submit">
</form>
myform=document.getElementById('myform');
myform.onsubmit=函数(){
if(document.getElementById('myinput')。值=“”){
返回false;
}
否则{
//表格将通过。。。
}
};

如果输入值为空,则由于返回false,输入值不会变为空。如果它确实有一个值,它将把你发送到谷歌。

你的问题有点让人困惑;这就是我想你要问的:

  • 您有一个用户可以填写的表单,该表单将发送给login.php
  • 如果他们忘记了用户名或密码,您需要确保他们不会被发送到login.php
  • 您想测试
    窗口。使用雅虎和谷歌URL打开
    窗口。定位
    ,但这些URL实际上不是您想要创建的站点的一部分,它们只是为了测试
  • 因此,考虑到这一点:

    window.open
    window.location
    是个好主意,但在这种情况下它们不是您想要的。如上所述,关键在于您可以通过从
    onclick
    方法返回
    false
    来取消对元素的单击:

    <html>
        <head>
    
            <script type = "text/javascript">
                function checksubmit(form){
                        if ( form.id.value == ""  || form.pass.value == "" ){
                            $check = alert("Don't leave id or password blank !\nPress OK to continue ... "); 
                            return false;
                        }
                    return true;
                    }
            </script>
        </head>
    <body>
            <form align = 'right' method = 'post' action = 'login.php'>
                ID : <input type = 'text' name = 'id' maxlength = 20 /></br>
                Password : <input type = 'password' name = 'pass'  /></br>
                <input type = 'submit' name = 'submit' value = 'Login' onclick = "return checksubmit(this.form)"/>
            </form>
        </body>
    </html>
    
    
    功能检查提交(表格){
    if(form.id.value==“”| | form.pass.value==“”){
    $check=警报(“不要将id或密码留空!\n按“确定”继续…”);
    返回false;
    }
    返回true;
    }
    身份证:
    密码:
    这样做的目的是,如果用户仍然需要输入用户名/密码,它将取消表单的提交。我还将
    confirm
    更改为
    alert
    ,因为您不希望他们点击yes或no,而只是点击“ok”继续


    希望这有帮助

    啊。我误用了“$”这个词。我尝试了你的代码,但还是另一个选项卡,看不出值我们的答案对你有任何帮助吗?我按照你说的做了,但返回false,然后继续“login.php”对不起,这将教会我在不检查的情况下发布。。。我犯了两个错误:1)checksubmit的第二行是查看form.password,但元素名为form.pass 2)onclick属性需要是“return checksubmit(this)”,而不仅仅是“checksubmit(this)”。我已经编辑了我的原始响应。事实上,您设置了action=“”,尽管if语句为true或false,但它仍然重定向到google.com,就像我的示例中的“login.php”一样。对不起,您可以将其设置为您想要的任何操作。然后将.open或其他任何内容放入if/else中
    <html>
        <head>
    
            <script type = "text/javascript">
                function checksubmit(form){
                        if ( form.id.value == ""  || form.pass.value == "" ){
                            $check = alert("Don't leave id or password blank !\nPress OK to continue ... "); 
                            return false;
                        }
                    return true;
                    }
            </script>
        </head>
    <body>
            <form align = 'right' method = 'post' action = 'login.php'>
                ID : <input type = 'text' name = 'id' maxlength = 20 /></br>
                Password : <input type = 'password' name = 'pass'  /></br>
                <input type = 'submit' name = 'submit' value = 'Login' onclick = "return checksubmit(this.form)"/>
            </form>
        </body>
    </html>