2015-03-02 21 views
0

有沒有辦法修改我的數據庫供電的測驗,以便如果用戶沒有回答一個或多個問題,單擊提交按鈕將觸發警報?換句話說,我想強制用戶回答所有問題,即使他們只是猜測。除非所有問題都有答案,否則得分機制無法正常工作。使用戶檢查表格上的所有答案

請注意,有些問題(本例中的最後一個問題)可能有多個正確的答案。我認爲所有重要的是至少選中了一個複選框。

<form action="" method="post" id="quiz"> 

    <li id="q9"> 
    <div class="Question">Scientists believe the universe is:</div> 
    <div class="Answer"> 
     <label class="Wide" for="q9-A"><div class="Radio"><input type="radio" name="q9[]" id="q9-A" value="A" style="display: none;"> A. disappearing</div></label></div> 
    <div class="Answer"> 
     <label class="Wide" for="q9-B"><div class="Radio"><input type="radio" name="q9[]" id="q9-B" value="B" style="display: none;"> B. expanding</div></label></div> 
    <div class="Answer"> 
     <label class="Wide" for="q9-C"><div class="Radio"><input type="radio" name="q9[]" id="q9-C" value="C" style="display: none;"> C. contracting</div></label></div> 
    <div class="Answer"> 
     <label class="Wide" for="q9-D"><div class="Radio"><input type="radio" name="q9[]" id="q9-D" value="D" style="display: none;"> D. becoming bipolar</div></label></div> 
    </li> 
    <li id="q10"> 
    <div class="Question">Check each item that can be found in our solar system.</div> 
    <div class="Answer" style="margin-top: 5px; background: #000; color: #fff; text-align: center;"> 
    <label for="q10-A"><input type="checkbox" name="q10[]" id="q10-A" value="A">planet</label> 
     <label for="q10-B"><input type="checkbox" name="q10[]" id="q10-B" value="B">asteroid</label> 
     <label for="q10-C"><input type="checkbox" name="q10[]" id="q10-C" value="C">comet</label> 
     <label for="q10-D"><input type="checkbox" name="q10[]" id="q10-D" value="D">black hole</label> 
     <label for="q10-E"><input type="checkbox" name="q10[]" id="q10-E" value="E">neutrino star</label> 
     <label for="q10-F"><input type="checkbox" name="q10[]" id="q10-F" value="F">quasar</label> 
    </div> 
     </li> 
</ol> 
<input type="hidden" name="PreviousURL" id="url" /> 
<input type="hidden" name="user_token" value="54f3f5438292e" /> 
<input type="submit" value="Submit Quiz" /> 
</form> 

回答

1

請完整的解決方案檢查如下的問題:在JavaScript函數按您的要求爲qno & i

<form action="" method="post" id="quiz" onsubmit="return formValidate();"> 

    <li id="q9"> 
    <div class="Question">Scientists believe the universe is:</div> 
    <div class="Answer"> 
     <label class="Wide" for="q9-A"><div class="Radio"><input type="radio" name="q9[]" id="q9-A" value="A"> A. disappearing</div></label></div> 
    <div class="Answer"> 
     <label class="Wide" for="q9-B"><div class="Radio"><input type="radio" name="q9[]" id="q9-B" value="B"> B. expanding</div></label></div> 
    <div class="Answer"> 
     <label class="Wide" for="q9-C"><div class="Radio"><input type="radio" name="q9[]" id="q9-C" value="C"> C. contracting</div></label></div> 
    <div class="Answer"> 
     <label class="Wide" for="q9-D"><div class="Radio"><input type="radio" name="q9[]" id="q9-D" value="D"> D. becoming bipolar</div></label></div> 
    </li> 
    <li id="q10"> 
    <div class="Question">Check each item that can be found in our solar system.</div> 
    <div class="Answer" style="margin-top: 5px; background: #000; color: #fff; text-align: center;"> 
    <label for="q10-A"><input type="checkbox" name="q10[]" id="q10-A" value="A">planet</label> 
     <label for="q10-B"><input type="checkbox" name="q10[]" id="q10-B" value="B">asteroid</label> 
     <label for="q10-C"><input type="checkbox" name="q10[]" id="q10-C" value="C">comet</label> 
     <label for="q10-D"><input type="checkbox" name="q10[]" id="q10-D" value="D">black hole</label> 
     <label for="q10-E"><input type="checkbox" name="q10[]" id="q10-E" value="E">neutrino star</label> 
     <label for="q10-F"><input type="checkbox" name="q10[]" id="q10-F" value="F">quasar</label> 
    </div> 
     </li> 
</ol> 
<input type="hidden" name="PreviousURL" id="url" /> 
<input type="hidden" name="user_token" value="54f3f5438292e" /> 
<input type="submit" value="Submit Quiz" /> 
</form> 
<script type="text/javascript"> 
function formValidate(){ 
    var qno = 2; // Total Questions, say. in your example it's 2 (9 and 10) 
    var i = 9; // Question No to start with, say. in your example it's 9 
    var qcount = (i+qno)-1; 
    for(i; i <= qcount; i++){ 
     qid = 'q'+i+'[]'; 
     var qidElement = document.getElementsByName(qid); 
     var checkcount = 0; 
      for(var j=0; j < qidElement.length; ++j){ 
       if(qidElement[j].checked){ 
        ++checkcount; 
       } 
      } 
      if(checkcount == 0){ 
       alert("Please select at least one Answer for Question no. "+i); 
       return false; 
      } 
    } 
    document.getElementById('quiz').submit(); 
} 
</script> 

輸入值,如由我在他們身邊的相關評論引導。

讓我知道是否有任何問題。謝謝! :)

1

如果您需要強制用戶填寫你必須使用一次性的驗證方法的所有領域:

1-客戶端:通過Java腳本,但用戶可以通過禁用Java腳本「不能繞過它推薦的」。

2-服務器端:用戶不能禁用它,並且代碼與您的編程語言相關。

3-混合類型:通過AJAX,這是最好的選擇

實施例的服務器端

A-檢查請求並返回在JSON類型的結果。

B-進程返回通過JavaScript和數據顯示的結果形式

檢查這個鏈接會幫你這麼多:

http://www.formget.com/form-validation-using-ajax/

http://www.w3schools.com/php/php_form_validation.asp

相關問題