我目前正在尝试编写一个相对简单的网站,但是我的HTML和Javascript技能非常基础。基本上,我想做的是创建一个页面,在其中向用户询问一个问题,并通过将其键入表单来回答该问题。使用外部Javascript函数,会将用户答案与正确的答案进行比较,如果答案相同,则应该将用户重定向到其他站点。
这是我的HTML文档中的表格:
<FORM NAME="myform" ACTION="" METHOD="GET"> Answer:
<INPUT TYPE="text" NAME="inputbox" VALUE="">
<button onClick="checkAnswerExact(this.form)"> Submit </button>
</FORM>
我的Javascript函数如下所示:
function checkAnswerExact(form){
//GET ANSWER
var x = form.inputbox.value;
//CONVERT ANSWER TO STRING
var TestAnsw =x.toString();
//DEFINE RIGHT ANSWER
var RightAnsw = "rightanswer";
//CHECK IF THEY ARE THE SAME
if (TestAnsw.toLowerCase() == RightAnsw.toLowerCase() ){
alert("The answer is right.");
window.location.href = 'https://www.reddit.com/';
} //WHAT TO DO IF ANSWER'S RIGHT
else {
alert("The answer is wrong.");
} //WHAT TO DO IF ANSWER'S WRONG
}
作为将其重定向到的示例站点,我选择了reddit。警报可以正常工作,因此可以对字符串进行比较。我已经搜寻了一段时间,并浏览了很多论坛,但似乎没有任何用处。我已经在if-else语句内部和外部尝试了
document.location=url
和window.replace(url)
,但似乎没有任何效果,该窗口仅重新加载。起作用的是window.open(url)
,但我不希望它在新选项卡中打开。如果相关,我正在使用Chrome作为浏览器。我很乐意提供帮助,我已经研究了几个小时,而且我很确定这可能是我犯了一个看不见的错误。
干杯!
最佳答案
好吧,我只是想出您的代码存在的问题。使用您的按钮添加on on事件上的return false。所以你的代码将成为
<button onClick="checkAnswerExact(this.form); return false;"> Submit </button>
并且也改变
window.location.href = 'https://www.reddit.com/';
至
window.location = 'https://www.reddit.com/';