我做了一个小例子来学习javascript和php。 我尝试使用window.open()和window.location()但它会打开一个新选项卡,当前选项卡仍会重定向到“login.php”
<html>
<head>
<script type = "text/javascript">
function checksubmit(form){
if ( form.id.value == "" || form.password.value == "" ){
$check = confirm("Don't leave id or password blank !\nPress OK to continue ... ");
if ($check)
window.open("http://www.google.com/");
else
window.location("http://www.yahoo.com");
}
}
</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 = "checksubmit(this.form)"/>
</form>
</body>
</html>
我希望我的页面在按下确定或取消时不会重定向到“login.php”。
答案 0 :(得分:2)
你的问题有点令人困惑;这就是我认为你在问的问题:
window.open
和window.location
,但这些网址实际上并不是您要制作的网站的一部分,只是用于测试。所以,考虑到这一点:
window.open
和window.location
是一个好主意,但在这种情况下,它们并不是您想要的。如上所述,关键是您可以通过从false
方法返回onclick
取消对元素的点击:
<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>
这样做,如果用户仍然需要输入他们的用户名/密码,取消提交表单。我还将confirm
更改为alert
,因为您不希望它们为“是”或“否”,而只是“确定”继续。
希望这有帮助!
答案 1 :(得分:1)
您已将其设置为window.location
,因此它将始终重定向,因为这就是您要告诉它的内容。
window.open
与window.location
类似,但会打开一个新的标签/窗口。同样,它将重定向。
你需要删除它们。
如果您不希望表单在空白时提交,则需要在表单上的return false
事件中添加onsubmit
,就像我在这里:http://jsbin.com/emopo3/2/edit
或者,这是该示例中的代码:
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>
如果输入的值为空,则由于return false
而不会。如果它有值,它会将您发送给Google。
答案 2 :(得分:0)
为什么你的支票变量是$?你不能在下面声明它。此外,您是否可以将其发送到警报框以查看它的价值是什么?
<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>