如何创建具有多个选项的输入表单?

时间:2009-12-08 11:09:16

标签: javascript

我正在尝试设置一个表单,允许您输入一个允许访问特定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种选择。

谢谢!

5 个答案:

答案 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;
}