2011-07-07 64 views
0

我想知道什麼最好的方法是循環瀏覽html中的下拉列表來查看是否已選擇項目。看看下拉列表中的項目是否已被選中

我知道在C#中它會沿着

int selected = cmbFamily.SelectedIndex; 

     for (int loop = 0; loop < cmbFamily.Items.Count; loop++) 
     { 
      if (selected == -1) 
      { 
       MessageBox.Show("please select an item", "Please", MessageBoxButtons.OK, MessageBoxIcon.Error); 
       break; 
      } 
     } 

我將如何去與JavaScript的做這個東西行?

<tr style="font-size:12pt; font-weight:bold; color:#FFFFFF; font-family:High Tower Text;"> 
        <td>Family to join:</td> 
        <td><select name="drpFamily"> 
         <option/>-select- 
         <option/>Gambino 
         <option/>Genovese 
         <option/>Lucchese 
         <option/>Colombo 
         <option/>Bonanno 
        </select><font color="red">*</font></td> 
       </tr> 

親切的問候 阿里安

+0

您的C#代碼看起來很糟糕:循環是什麼? –

+1

請勿使用''!現在不是1999年了。 – epascarello

回答

1

第一關你的HTML代碼是完全錯誤的。這不是</option>text,它是<option>text</option>

要遍歷選項時,它很簡單,只要

//var options = document.getElementById("selectId").options; 
var options = document.formName.selectName.options; 
for(var i=0;i<options.length;i++){ 
    if(options[i].selected){ 
    alert(options[i].value); 
    } 
} 

但通過一個單一的選擇無需循環。最簡單的方法就是將選定的索引用於單個選擇。

//var sel = document.getElementById("selectId"); 
var sel = document.formName.selectName; 
var opt = sel.options[sel.selectedIndex]; 
alert(opt.value); 
+0

感謝代碼上的指針... – Arianule

1

第一:your HTML is wrong.

應該

<option>-select- 
... 

<option>-select-</option> 
... 

如果你只是想選擇的值,你可以通過select元素的value屬性得到它:

var value = document.getElementsByName('drpFamily')[0].value 

這隻能如果沒有與名稱drpFamily只有一個元素。如果不是,你必須找到一個合適的方法來選擇它。

你可能想比較它針對的第一個值(這是默認選擇)

if(value !== '-select-') 

你也可以添加一個change事件監聽器選擇元素:

document.getElementsByName('drpFamily')[0].onchange = function() { 
    if(this.value !== '-select-') { 
     //a value other '-select-' than was selected 
    } 
} 
相關問題