2016-03-05 43 views
1

我創建了一個數據庫驅動的測試,其中包含三種類型的問題 - 輸入類型=收音機,文本和複選框。如果我在結束標記之前插入所需的,它對收音機和文本問題工作正常,但不支持複選框。在一個複選框(動態顯示)中顯示「required」

問題是,每個複選框的問題有幾個可能的答案 - 從三到六的任何地方。而那些正確答案的選擇數量也各不相同。

但是,當我將「必需」添加到複選框腳本時,用戶必須選擇每個答案才能進入結果頁面。這是代碼的樣子:

<label for="q'.$QID.'-'.$Value.'"><input type="checkbox" name="q'.$QID.'[]" id="q'.$QID.'-'.$Value.'" value="'.$Value.'" **required**> '.$QA.'</label> 

我找到HTML5 Required Attribute頁面,它似乎解決了這個問題。如果我理解正確,可以通過在一個元素中插入「required」來解決問題。所以如果你將它插入到答案A中,用戶可能會選擇答案C和D,並且一切都會正常工作。

如果這是正確的,那麼有沒有辦法在一個複選框中進行「必需」顯示,而不是所有這些?

+0

你爲什麼不使用只在使用PHP編寫的條件一組則第一個複選框「需要」? – SachinSunny

+0

好的提示;任何人都可以告訴我該怎麼做?例如,是否有寫一個PHP開關的方法,它說1)只在輸入類型=複選框的回答中插入「required」(其他輸入類型中已經插入了「required」),並且2)插入「required 「在每個組的第一個複選框中? –

回答

1

使用required使用組的第一個複選框的條件。我假設你的html代碼是用.php文件編寫的。

$required = ($Value == 0) ? "required" : ""; //condition to check if the value is first. since it is database driven it would be better to check the key instead of the value.; 
    echo '<label for="q'.$QID.'-'.$Value.'"><input type="checkbox" name="q'.$QID.'[]" id="q'.$QID.'-'.$Value.'" value="'.$Value.'" '. $required .'> '.$QA.'</label>'; 

另一種解決方案是使用Jquery添加必需的屬性。對於例如,如果性別是組複選框,然後名稱:

$('input[type=checkbox][name=gender]')[0].attr('required', 'required');;