2011-09-26 82 views
1

基本想法是有幾個問題,但只有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

你的代碼適合我。必須添加對jquery的引用。 –

回答

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錯誤的索引,現在修復。

+0

非常感謝乍得 – jaruesink

2

只有當#pwd9是所示的代碼時,你的代碼纔會工作。將您的if更改爲else if。或switch

和NO,它根本不安全。鏈接是一直在那裏

0

我認爲你在語法中缺少一些東西 - 所有你的if語句(bar第一個),應該是elseif的。

這真的不是很安全,說實話,可能比做'正確'更多的工作(即動態顯示問題,只有一種形式,並可能做一些事情(幾乎任何事情),使這更安全)。

0

我不確定這可以工作。這是應該怎麼做:

  1. 服務器端語言,如PHP,選擇隨機抽題,並打印出屏幕上的一個形式。

  2. 你的表單需要一個提交按鈕,當按下按鈕時,它將把數據發送到服務器。

  3. 服務器端語言將處理數據並決定是否顯示鏈接。

這是它是如何的正常進行+它更安全,答案和鏈接不能這麼容易讀取。

0

你的問題是你只使用if's。使用else if爲每個如果作出最後的相對於所有if而不是最後一個。