基本思路是有几个问题,但只有1个问题在页面加载时随机显示。然后,对该问题的任何答案都将显示下载。
问题随机加载,但是当我输入答案时,下载不会显示。我以为我的所有代码都是正确的,但也许有更好的方法可以做到这一点。如果你能帮助我,我会非常感激。
P.S。我已经知道这不是隐藏某些东西的超级安全方式,但它不需要非常安全。
<form id="1">
Enter the 5th word on page 28 to access the download:
<input id="pwd1" name="pwd1" type="text" />
</form>
<form id="2">
Enter the 6th word on page 29 to access the download:
<input id="pwd2" name="pwd2" type="text" />
</form>
<form id="3">
Enter the 4th word on page 30 to access the download:
<input id="pwd3" name="pwd3" type="text" />
</form>
<form id="4">
Enter the 3rd word on page 32 to access the download:
<input id="pwd4" name="pwd4" type="text" />
</form>
<form id="5">
Enter the 5th word on page 33 to access the download:
<input id="pwd5" name="pwd5" type="text" />
</form>
<form id="6">
Enter the 3rd word on page 34 to access the download:
<input id="pwd6" name="pwd6" type="text" />
</form>
<form id="7">
Enter the 5th word on page 35 to access the download:
<input id="pwd7" name="pwd7" type="text" />
</form>
<form id="8">
Enter the 4th word on page 36 to access the download:
<input id="pwd8" name="pwd8" type="text" />
</form>
<form id="9">
Enter the 6th word on page 37 to access the download:
<input id="pwd9" name="pwd9" type="text" />
</form>
<div id="hc" style="display: none;">
<center><a href="sudoku.zip"><img id="download" src="download.png"></a></center>
</div>
<script language="javascript">
var rand = Math.floor(Math.random()*9);
$('form').hide().eq(rand).show();
$('form').keyup(function(){
if($('#pwd1').val() == 'more'){
$('#hc').show('slow');
}
if($('#pwd2').val() == 'Rectangle'){
$('#hc').show('slow');
}
if($('#pwd3').val() == 'case'){
$('#hc').show('slow');
}
if($('#pwd4').val() == 'similarities'){
$('#hc').show('slow');
}
if($('#pwd5').val() == 'similar'){
$('#hc').show('slow');
}
if($('#pwd6').val() == 'this'){
$('#hc').show('slow');
}
if($('#pwd7').val() == 'done'){
$('#hc').show('slow');
}
if($('#pwd8').val() == 'outside'){
$('#hc').show('slow');
}
if($('#pwd9').val() == 'completed'){
$('#hc').show('slow');
}
else{$('#hc').hide();}
});
</script>
答案 0 :(得分:2)
只有在显示#pwd9时,您的代码才有效。将您的if
更改为else if
。或switch
并且不,它根本不安全。这个链接一直都在那里
答案 1 :(得分:1)
这将更加清洁:
var rand = Math.floor(Math.random() * 9),
words = ['more', 'Rectangle', 'case', 'similarities', 'similar', 'this', 'done', 'outside', 'completed'];
$('form').hide().eq(rand).show();
$('form input').keyup(function() {
if (this.value === words[rand])
$('#hc').show('slow');
});
以下是jsFiddle的工作原理。
修改我的words
索引错了,现在修好了。
答案 2 :(得分:0)
我认为你在语法中遗漏了一些东西 - 你所有的if语句(第一个都是吧),应该是elseif的。
这真的不是很安全,说实话,可能比“正确”做更多的工作(即动态显示问题,只有一个表单,并且可能做一些事情(几乎所有事情)来使这个更多安全的)。
答案 3 :(得分:0)
我不确定这根本可以奏效。这是应该如何做的:
服务器端语言(如php)会选择随机问题并在屏幕上打印出一个表单。
您的表单需要一个提交按钮,按下该按钮后,会将数据发送到服务器。
服务器端语言将处理数据并决定是否显示链接。
这是通常的做法+它更安全,答案和链接无法轻易阅读。
答案 4 :(得分:0)
您的问题是您只使用if
。对每个else if
使用if
相对于所有{{1}}而不是最后一个,而不是最后一个。