2016-03-06 57 views
1

我正在進行數據庫驅動的測試,並在某些結束標記之前插入「required」,以便用戶在至少嘗試過之前不能提交結果回答所有問題。需要的響應不會顯示消息,其中input = radio

下面是兩種類型的問題,在這裏輸入型=無線電或文字...

$QA = '<div class="Answer"> 
     <label class="Wide" for="q'.$QID.'-'.$Value.'"><div class="Radio"><input type="radio" name="q'.$QID.'[]" id="q'.$QID.'-'.$Value.'" value="'.$Value.'" style="display: none;" required> '.$Value.'. '.$QA.'</div></label></div>'; 

文本輸入...

$QA = '<div class="Answer"> 
     <label for="q'.$QID.'-'.$Value.'"><div class="Multiple-Choice"> <input type="text" name="q'.$QID.'[]" id="q'.$QID.'-'.$Value.'" value="" required></div></label></div>'; 

的文字輸入工作正常的代碼。如果用戶在回答文本問題之前單擊提交按鈕,則頁面跳轉到他們未回答的問題,並彈出一條消息:「請填寫此字段。」

但是,如果他們點擊提交按鈕而不回答輸入類型爲「收音機」的問題,則什麼都不會發生。頁面沒有提交(就像它應該的那樣),但是用戶可能不知道爲什麼,因爲頁面沒有跳到沒有回答的問題,也沒有顯示任何消息。

有誰知道如何解決這一問題?

回答

1

如果問題得到解答,那不應該是您唯一的檢查。

在使用jQuery發送數據之前,您還應該循環遍歷所有字段,並檢查某個字段是否沒有值,並將用戶返回到帶有錯誤消息的字段。

之後,你應該檢查你的php部分中的每個字段,並在ajax加載時向用戶返回一個錯誤。

用戶可以刪除前端檢查,但不能跳過後端檢查。查詢循環的

實例,並檢查

var inputs = $('#myForm :input'); 

inputs.each(function(index, value) { 
    if ($(value).val() == '') { //check if the input is empty 
     //return the error 
    } 
}); 

你明白了吧。你應該在php部分有相同類型的檢查。

+0

謝謝,但那不適合我。我將#myForm替換爲#quiz(我的表單ID,然後將腳本插入到頁面底部附近,但如果我在不回答任何問題的情況下單擊提交按鈕,它仍會提交,我不明白「index」的值。我需要替代它嗎? –

+0

'$(價值)'是你的元素。 –