根据Jquery/Javascript中的表单提交重定向页面?

根据Jquery/Javascript中的表单提交重定向页面?,javascript,jquery,html,forms,redirect,Javascript,Jquery,Html,Forms,Redirect,我正在处理一个页面,该页面应该根据用户在表单中输入的内容进行重定向,但我似乎无法理解。Javascript新手,渴望学习 以下是html: <body> <div id="header"> <div id="navcontainer"> <ul> <li> <a href="#item1">Home</a> </li> <l

我正在处理一个页面,该页面应该根据用户在表单中输入的内容进行重定向,但我似乎无法理解。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>

非常感谢您的帮助,谢谢

输入以下代码:

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

在表单onsubmit属性中。

输入以下代码:

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

在表单onsubmit属性中。

您无法获得用户使用#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,并且不需要为函数提供任何参数

document.getElementById('feels').value
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
}

如果使用jQuery,则可以通过以下方式获取值:$('#feels').val()

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

$('#feels').val(); 您可以在纯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,并且不需要为函数提供任何参数

document.getElementById('feels').value
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
}
如果使用jQuery,则可以通过以下方式获取值:$('#feels').val()

$('#feels').val();
return checkfeels(this.elements.feeling.value)
以onsubmit属性的形式

当前情况下的“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
}

return checkfeels(this.elements.feeling.value)
以onsubmit属性的形式

当前情况下的“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
}

会发生什么?到底发生了什么?您尝试了什么浏览器?是否已在浏览器中启用调试?如果是,它是否报告了任何错误?我只想让用户回答“你感觉如何?”的问题,当他们输入答案时,他们应该根据自己的答案被引导到一个新页面。我已经在Firefox和Chrome上试过了,但我没有想到要启用调试。我会研究一下。会发生什么?到底发生了什么?您尝试了什么浏览器?是否已在浏览器中启用调试?如果是,它是否报告了任何错误?我只想让用户回答“你感觉如何?”的问题,当他们输入答案时,他们应该根据自己的答案被引导到一个新页面。我试过Firefox和Chrome,但我没有想到要启用调试。我会研究一下。当我这么做的时候,我会被带到index.html?feeling=good,而不是一个新页面。是我做错了什么……还是我只是不明白表单是如何工作的?当我这样做时,我只会被带到index.html?feeling=good而不是一个新页面。我是做错了什么……还是我只是不明白表单是如何工作的?