我有一個下拉菜單,在我的HTML下方的一些按鈕:我jQuery的功能我不認爲是正確的
<p>
<select name="numberDrop" id="numberDropId" onClick="getButtons()">
<option value=""></option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
</select>
</p>
<p>
<input class="answerBtns" id="answerA" type="button" value="A" onclick="getButtons(this.id);" />
<input class="answerBtns" id="answerB" type="button" value="B" onclick="getButtons(this.id);"/>
<input class="answerBtns" id="answerC" type="button" value="C" onclick="getButtons(this.id);"/>
<input class="answerBtns" id="answerD" type="button" value="D" onclick="getButtons(this.id);"/>
<input class="answerBtns" id="answerE" type="button" value="E" onclick="getButtons(this.id);"/>
</p>
這是我希望發生的:比方說,用戶在例如下拉菜單中選擇3 ,那麼如果用戶點擊一個按鈕,它將突出顯示該按鈕的顏色(可以說是綠色),但用戶只能選擇三個按鈕。
如果單擊一個附加按鈕,則不會選擇該按鈕。只有當用戶取消選擇一個選定的按鈕然後選擇他希望的按鈕時才能選擇附加按鈕。這意味着最多隻能選擇3個按鈕。
不能選擇少於3個按鈕,如果用戶在下拉菜單中選擇了3個按鈕,它必須是3個按鈕。
我試過使用jQuery addClass
和removeClass
,但我不知道如何從下拉列表中檢索值,並且我不知道是否選擇了按鈕。有人可以告訴我,如果這個jQuery方法是否正確,我需要把我的JavaScript或我的CSS放在選定的按鈕綠色和未選定的按鈕回灰色?
下面是我的函數,如果我只是想選擇3個按鍵:
function getButtons(id)
{
if ($('#' + id).hasClass('answerBtnsSelected'))
$('#' + id).removeClass('answerBtnsSelected');
else
{
if ($('.answerBtnsSelected').length != 3)
{
$('#' + id).addClass('answerBtnsSelected');
}
else
{
alert('Only three buttons can be selected.');
}
}
}
這就像你正在使用jQuery,但不是在同一時間。 –
這段代碼很糟糕。每當你製作$(「#」+ id)時,你都會做DOM遍歷,這是很昂貴的。將它存儲在一個變量中,請像高效的孩子一樣高效。 –
再看看你是如何獲得'numberDrop'。我的猜測是它是'未定義的'。作爲Dbugger指出的 – hafichuk