0

我正在处理一个页面,该页面应该根据用户在表单中输入的内容进行重定向,但我似乎无法弄清楚。Javascript 新手,渴望学习!

这是html:

<body>
<div id="header">
    <div id="navcontainer">
        <ul>
            <li> <a href="#item1">Home</a> </li>
            <li> <a href="#item2">Scents</a> </li>
            <li> <a href="#item3">About</a> </li>
            <li> <a href="#item4">Contact</a> </li>
        </ul>
    </div>  
</div>
<div id="content">
        <p>Hi, how are you feeling today?</p>
        <form> <input id="feels" type="text" name="feeling" size="35" onchange="checkfeels(#feels.value);"> 
        <input type="submit" value="submit" >
        </form>
</div>

到目前为止,我拥有的 Javascript:

function checkfeels(myFeels) {
        switch (myFeels) 
        {
        case "good":
            document.location.href = 'scents.html';
            break
        case "bad":
            alert(2);
            document.location.href = 'scents2.html';
        default: 
            alert("whatever");
        }
    }

非常感谢任何帮助,谢谢!

4

3 回答 3

2

放在

return checkfeels(this.elements.feeling.value)

以 onsubmit 属性的形式。

当前情况下的“感觉”是输入字段的名称。<input type="text" name="feeling"> 在你的代码中。

并添加

return false;

到 checkfeels 函数的末尾以防止默认操作(将表单提交到服务器)。

此外,您可以将整个表单传递给函数,例如:

return checkfeels(this)

并且已经在 checkfeels 功能中与整个表格一起工作。

function checkfeels(form) {
   var feeling = form.elements.feeling.value;
   var otherField = form.elements.otherField.value;

   // code with your logic here

   return false; // prevent default action
}
于 2013-03-31T22:00:08.780 回答
1

输入以下代码:

checkfeels($('#feels').val());
return false;

以 onsubmit 属性的形式。

于 2013-03-31T21:08:22.430 回答
0

您无法使用 #feels.value 获取用户键入的内容(您似乎在 jQuery 语法和 javascript 之间犯了一个错误)。

你可以在纯 javascript 中做到这一点:

function checkfeels() {
    var myFeels = document.getElementById('feels').value;
    switch (myFeels) {
        case "good":
            document.location.href = 'scents.html';
            break
        case "bad":
            alert(2);
            document.location.href = 'scents2.html';
        default: 
            alert("whatever");
    }
}

您将获得用户输入的内容:

document.getElementById('feels').value
而且您不需要为函数提供任何参数。

如果您使用 jQuery,您可以通过以下方式获取值:

$('#feels').val();

于 2013-03-31T21:13:59.207 回答