2012-03-29 68 views
7

我有詢問用戶是否他想加入俱樂部一個DropDownList:的onChange和ONSELECT在DropDownList中

Do you want to join the club 
Yes 
No 

在這個名單有被設置爲禁用爲默認另一個列表。這個名單有俱樂部的部門。直到用戶選擇是,該列表纔會啓用。

我構建了下面的代碼,但我無法解決的問題是讓我們假設用戶選擇是然後他改變他的決定,所以他會再次選擇否。在這種情況下,部門列表仍然可用。當他再次選擇No時,我希望它被禁用。

​​3210

我認爲onSelect="disable();"會解決問題,但它仍然無法正常工作。

感謝

+0

看起來像單選按鈕會更合適。另外,'onselect'不是select和option元素的有效屬性。 – RobG 2012-03-30 00:43:56

回答

14

我會做這樣的jsFiddle example

的JavaScript:

function check(elem) { 
    document.getElementById('mySelect1').disabled = !elem.selectedIndex; 
} 

HTML:

<form> 
<select id="mySelect" onChange="check(this);"> 
<option>No</option> 
<option>Yes</option> 
</select> 

<select id="mySelect1" disabled="disabled" > 
<option>Dep1</option> 
<option>Dep2</option> 
<option>Dep3</option> 
<option>Dep4</option> 
</select> 
</form> 
3

我敢打賭,onchange是獲得onselect解僱後,基本上是重新啓用選擇。

我建議你實施只有onchange,檢查哪個選項已被選中,並啓用或禁用基於此。

要獲得所選擇的選項的使用價值:

document.getElementById("mySelect").options[document.getElementById("mySelect").selectedIndex].value 

,因爲你沒有指定爲每個選項的值會產生..沒有.. :(

<select id="mySelect" onChange="enable();"> 
<option onSelect="disable();" value="no">No</option> 
<option onSelect="enable();" value="yes">Yes</option> 
</select> 

現在它會產生"yes""no"

3

爲了讓一個強大的形式,有它在一個有用的狀態和使用腳本加載,以提高其性能。在下面,選擇已被單選按鈕取代(使用戶的生活變得更加容易)。

默認選中「是」選項,並啓用選擇。如果用戶檢查單選按鈕,則選擇被啓用或禁用。

<form onclick="this.mySelect1.disabled = this.becomeMember[1].checked;" ... > 
    <input type="radio" name="becomeMember" checked>Yes<br> 
    <input type="radio" name="becomeMember">No<br> 

    <select id="mySelect1"> 
    <option>Dep1 
    <option>Dep2 
    <option>Dep3 
    <option>Dep4 
    </select> 
    ... 
</form> 
0

hmm。你爲什麼不使用onClick()

<select id="mySelect" onChange="enable();"> 
    <option onClick="disable();">No</option> 
    <option onClick="enable();">Yes</option> 
</select> 
2

簡單&簡單: JavaScript代碼:

function JoinedOrNot(){ 
    var cat = document.getElementById("mySelect"); 
    if(cat.value == "yes"){ 
     document.getElementById("mySelect1").disabled = false; 
    }else{ 
     document.getElementById("mySelect1").disabled = true; 
    } 
} 

只添加這行[的onChange = 「JoinedOrNot()」]:<select id="mySelect" onchange="JoinedOrNot()">

它工作正常;)