Php 如何使用javascript重定向提交时的当前选项卡?
我做了一个小例子来学习javascript和php。 我尝试了window.open()和window.location(),但它打开了一个新选项卡,当前选项卡仍然重定向到“login.php”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
功能检查提交(表格){
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,输入值不会变为空。如果它确实有一个值,它将把你发送到谷歌。你的问题有点让人困惑;这就是我想你要问的:
窗口。使用雅虎和谷歌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>