我写了一个jquery if/else
来检查textbox
的值,如果等于一个单词,它将重定向到url
- 否则它会更改值textbox
到“try again
”。发生的事情是当if值为true
且重定向发生时,我可以看到在重定向发生之前,文本框中会快速弹出else值。
这就是我所拥有的:
$(document).ready(function() {
$('#passphrase').focus();
$('#passphrase').keyup(function(e) {
if (e.which === 13) {
if ($('#passphrase').val() == "marina heights") {
window.location = "marina heights/index.html";
}
else {
$('#passphrase').val("try again");
}
}
});
});
提前感谢您的帮助!
答案 0 :(得分:0)
编辑:我完全不解
在下面发布我的答案之后,我可以在你的问题中看到另一个代码,而不是我回答的问题!而且我看不到任何“编辑”提及。不明白发生了什么......
以下是我必须使用的原始代码,完全转载:
$(document).ready(function() {
$('#passphrase').focus();
$('#passphrase').keyup(function(e) {
if (e.which === 13) {
if ($('#passphrase').val() == "marina heights") {
window.location = "marina heights/index.html";
}
if ($('#passphrase').val() == "BRI") {
window.location = "http://www.google.com";
}
else {
$('#passphrase').val("try again");
}
}
});
});
这是严格正常的,至少在您输入“码头高度”时。
因为第一个if
你没有放置任何else
,所以继续使用它下面的代码:在浏览器实现渲染来自新window.location
之前的代码之前时间足以执行下一个if
,这不是真的,导致显示“再试一次”。
键入“BRI”时不会发生这种情况。
我建议你只使用switch()
来解决这类问题,特别是当机会存在时,最后的实例会有超过2个已知位置。
因此,您也可以不为$('#passphrase').val()
重复jQuery工作。
所以你可以这样写:
$(document).ready(function() {
var location='',
passphrase = $('#passphrase');
passphrase[0].focus();
passphrase.keyup(function(e) {
if (e.which === 13) {
switch(passphrase.val()) {
case "marina heights":
location = "marina heights/index.html";
break;
case "BRI":
location = "http://www.google.com";
break;
default:
passphrase.val("try again");
return false;
}
window.location = location;
}
});
});