我正在尝试设置一个表单,允许您输入一个允许访问特定URL的密码。
例如,输入“facebook”,它会将您带到www.facebook.com 输入“yahoo”,它会将您发送到www.yahoo.com 输入,“google”,....你明白了。 如果除了那些单词之外输入任何内容,它都会出错。
这是我到目前为止所做的:
<script language="javascript">
<!--//
/*This Script allows people to enter by using a form that asks for a
UserID and Password*/
function pasuser(form) {
if(form.id.value=="google") { location="http://www.google.com" }
else if(form.id.value=="facebook") { location="http://www.facebook.com" }
else if(form.id.value=="yahoo") { location="http://www.yahoo.com" }
else {alert("Invalid Password")}
}
//-->
</script>
<form name="login">
<input name="id" type="text">
<input type="button" value="Enter Class" onClick="pasuser(this.form)">
</form>
然而,这不起作用!有人可以帮我设置它!我真的希望有超过3种选择。
谢谢!
答案 0 :(得分:2)
我不知道在这个特定的例子中什么不起作用(它可以工作,点击提交按钮,而不是点击 ENTER )。但是如果你想拥有超过3个网站,你可以更容易:
<script>
// ...
sites = {
"google": "http://www.google.com",
"facebook": "http://www.facebook.com",
"yahoo": "http://www.yahoo.com"
};
function pasuser(form) {
if (sites[form.id.value]) {
window.location = sites[form.id.value];
} else {
alert("Invalid Password")
}
}
</script>
答案 1 :(得分:2)
您不应该使用“id”作为HTML元素的名称,因为它可能与id
属性冲突。对于我的其余部分,请查看MBO's answer
答案 2 :(得分:1)
我认为你的意思是写下这样的内容:
function redirect( ) {
var textfield = document.getElementById( 'textfield' );
var location = '#';
switch( textfield.value ) {
case 'facebook':
location = 'http://facebook.com';
break;
case 'google':
location = 'http://google.com';
break;
// add as many as you like
}
window.location.href = location;
}
HTML:
<input id="textfield" type="text" value=""/>
<input type="button" value="Enter Class" onclick="redirect()"/>
您不需要表单来执行此URL重定向。
祝你好运。答案 3 :(得分:1)
如果您希望将用户发送到特定位置,可能需要使用window.location
而不是location
。
答案 4 :(得分:0)
我在Firefox 3.5和IE 8上尝试了你的代码,它在你点击按钮时起作用,而不是在输入字符串后按Enter键。要使其从输入键起作用,请从表单的onsubmit中调用return pasuser(this)
,并从pasuser函数的结尾调用return false;
。
<form name="login" onsubmit="return pasuser(this)">
function pasuser(form)
{
//other code
else {alert("Invalid Password")}
return false;
}